MySQLで複数の条件に一致するレコードを取得する方法|IN句の使い方を解説
MySQLで複数のWHERE条件を実現するには
MySQLで「WHERE A または WHERE B」のように複数の条件に一致するレコードを一度に取得したい場合、IN() 句を使用するのが最も簡単で効率的な方法です。OR条件を何度も書き並べるよりも、コードがすっきりし、可読性も向上します。
基本構文
SELECT * FROM テーブル名 WHERE カラム名 IN(値1, 値2, ...N);
カラムの値が IN() の中に指定した値のいずれかと一致すれば、そのレコードが抽出されます。
実際に試してみよう
1. サンプルテーブルを作成する
まず、動作確認用のテーブルを作成します。
mysql> create table DemoTable
(
Id int,
Name varchar(100)
);
Query OK, 0 rows affected (0.61 sec)2. レコードを挿入する
INSERT文を使って、テーブルにいくつかのデータを追加します。
mysql> insert into DemoTable values(10,'John'); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(59,'Carol'); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(20,'Sam'); Query OK, 1 row affected (0.15 sec) mysql> insert into DemoTable values(45,'David'); Query OK, 1 row affected (0.73 sec)
3. 全レコードを表示する
SELECT文ですべてのレコードを確認してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。
出力結果
+------+-------+ | Id | Name | +------+-------+ | 10 | John | | 59 | Carol | | 20 | Sam | | 45 | David | +------+-------+ 4 rows in set (0.00 sec)
IN句で複数の条件を指定して抽出する
それでは、IN句を使って複数のWHERE条件を実現してみます。ここでは Id が 59 または 45 のレコードを取得します。
mysql> select *from DemoTable where Id IN(59,45);
出力結果
+------+-------+ | Id | Name | +------+-------+ | 59 | Carol | | 45 | David | +------+-------+ 2 rows in set (0.14 sec)
まとめ
このように、MySQLで複数の条件に一致するレコードを取得したい場合は、IN句を使えば1つのWHERE句だけで簡単に実装できます。このクエリは次のOR条件と同じ結果になります。
SELECT * FROM DemoTable WHERE Id = 59 OR Id = 45;
条件の数が多くなるほどIN句の方が記述がシンプルになるため、実務でも広く使われています。ぜひ活用してみてください。
-
MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法
MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;
-
MySQLでWHERE句に複数の条件を指定してデータを更新する方法
MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&