【SQL】UPDATE WHERE IN 句の使い方を解説します

SQL

SQLの構文を知りたい人
「UPDATE WHERE IN 句の使い方を忘れたので教えてほしい。構文とコピペ可能ですぐに使いまわせるサンプルコードがみたい。」

こんな悩みを解決します。

UPDATE WHERE IN 句の使い方を解説します。

具体的には、リンゴ・オレンジ・バナナの3つの果物のうち、リンゴとバナナをミックスジュースに変える(UPDATEする)SQL文を例示します。

では、ミックスジュースでSQLの解説、スタートです

本記事の内容

事前準備

テーブルを作ります

CREATE TABLE test (id INTEGER NOT NULL AUTO_INCREMENT,name VARCHAR(20) NOT NULL, PRIMARY KEY(id));

次にリンゴ、オレンジ、バナナを登録しておきます

INSERT INTO test (name) VALUES('Apple');
INSERT INTO test (name) VALUES('Orange');
INSERT INTO test (name) VALUES('Banana');

準備完了

update where in ..句を使う準備

準備したテーブルの内容は以下の通りです。

+----+--------+
| id | name   |
+----+--------+
|  1 | Apple  |
|  2 | Orange |
|  3 | Banana |
+----+--------+

構文(UPDATE SET〜WHERE〜IN〜)

UPDATE SET [カラム1]=[値1] WHERE [カラムA] IN ([値A],[値B],...) 

構文理解のポイントは2つ

 WHERE句内の[カラムA]に複数の値([値A],[値B],…)を条件指定できます。
 条件にマッチしたレコードの[カラム1]を、[値1]でアップデートします。

UPDATE WHERE IN 句でアップデートする

update where in ..句でアップデートする

UPDATE WHERE IN 句を使ってリンゴとバナナをアップデートし、ミックスジュースにしましょう。

UPDATE test SET name='mix juice' WHERE name IN ('Apple','Banana');

SELECT * FROM test;

[実行結果]

+----+-----------+
| id | name      |
+----+-----------+
|  1 | mix juice |
|  2 | Orange    |
|  3 | mix juice |
+----+-----------+

否定条件(NOT IN)を使う

否定条件(NOT IN)を使って、リンゴ以外(オレンジとバナナ)をミックスジュースにします。

+----+--------+
| id | name   |
+----+--------+
|  1 | Apple  |
|  2 | Orange |
|  3 | Banana |
+----+--------+

否定条件(NOT IN)のSQLは以下です。

UPDATE test SET name='mix juice' WHERE name NOT IN ('Apple');

実行結果は以下の通りです。
[実行結果]

+----+-----------+
| id | name      |
+----+-----------+
|  1 | Apple     |
|  2 | mix juice |
|  3 | mix juice |
+----+-----------+

SELECT WHERE IN 句の使い方

SELECT文を使ったSELECT WHERE IN句の使い方は以下の通りです。

select id,name from test where name in ('mix juice','Orange');

実行結果は以下の通りです。
[実行結果]

+----+-----------+
| id | name      |
+----+-----------+
|  1 | mix juice |
|  2 | Orange    |
|  3 | mix juice |
+----+-----------+

今回は以上です。参考になりましたら幸いです。