MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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句の方が記述がシンプルになるため、実務でも広く使われています。ぜひ活用してみてください。

  1. MySQLでSELECTクエリを使用してデータを挿入(INSERT)する方法

    MySQLでは、INSERT文とSELECTクエリを組み合わせることで、テーブルにデータを挿入することができます。通常、SELECTは既存のテーブルからデータを取得するために使われますが、値を直接指定してINSERTを実行する際にも活用できる便利な手法です。基本構文SELECTクエリを使用してINSERTを実行する場合の構文は以下の通りです。insert into yourTableName(yourColumnName1,yourColumnName2,yourColumnName3,...N) select yourValue1,yourValue2,yourValue3,......N;

  2. MySQLでWHERE句に複数の条件を指定してデータを更新する方法

    MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&