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

MySQLのWHERE句で配列を渡す方法|IN句を使った複数条件の指定テクニック

MySQLのWHERE句で配列を渡すには?

MySQLでは、WHERE句とIN句を組み合わせることで、配列のように複数の値をまとめて条件に指定できます。特定の複数のIDや値に一致するレコードだけを抽出したい場合に非常に便利な方法です。

この記事では、実際にサンプルテーブルを作成しながら、IN句を使った配列渡しの方法を具体的なSQL例とともに解説します。

1. サンプルテーブルの作成

まず、例として使用する新しいテーブルを作成します。

mysql> create table PassingAnArrayDemo
    -> (
    -> id int,
    -> Firstname varchar(100)
    -> );
Query OK, 0 rows affected (1.60 sec)

2. レコードの挿入

続いて、テーブルにサンプルデータを挿入します。INSERT文では複数の行を一度に登録できます。

mysql> insert into PassingAnArrayDemo values(1,'John'),(2,'Carol'),(3,'Smith'),(4,'Bob'),(5,'Johnson'),(6,'David'),(7,'Sam'),(8,'Jessica');
Query OK, 8 rows affected (0.32 sec)
Records: 8  Duplicates: 0  Warnings: 0

3. 登録した全レコードを表示

すべてのレコードを確認するには、SELECT文を実行します。

mysql> select *from PassingAnArrayDemo;

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

+------+-----------+
| id   | Firstname |
+------+-----------+
|    1 | John      |
|    2 | Carol     |
|    3 | Smith     |
|    4 | Bob       |
|    5 | Johnson   |
|    6 | David     |
|    7 | Sam       |
|    8 | Jessica   |
+------+-----------+
8 rows in set (0.00 sec)

4. WHERE IN句で配列のように複数の値を指定する

IN句を使用すると、WHERE句に配列パラメータを渡すのと同じように、複数の値を一度に指定できます。構文は以下の通りです。

mysql> SELECT *
    -> FROM PassingAnArrayDemo where id IN(1,3,6);

このクエリでは、idが「1」「3」「6」のいずれかに一致するレコードのみが抽出されます。実行結果を見てみましょう。

+------+-----------+
| id   | Firstname |
+------+-----------+
|    1 | John      |
|    3 | Smith     |
|    6 | David     |
+------+-----------+
3 rows in set (0.04 sec)

まとめ

MySQLのWHERE句で配列を扱いたい場合は、IN句を使うのが基本です。カンマ区切りで複数の値を指定することで、複数のOR条件を簡潔に1つのクエリで表現できます。

なお、PHPやJavaなどのアプリケーションから動的に値のリストを渡す場合は、SQLインジェクションを防ぐために、プレースホルダを使ったプリペアドステートメントと組み合わせることをおすすめします。


  1. 【MySQL】WHERE句のAND条件を使ってテーブルから特定のレコードを削除する方法

    MySQLでWHERE句にAND条件を使って特定のレコードを削除する方法MySQLでは、WHERE句にAND演算子を組み合わせることで、複数の条件をすべて満たすレコードだけを対象に操作できます。本記事では、実際にテーブルを作成し、AND条件を使って特定のレコードを削除するまでの手順を順番に解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> );Query OK, 0 rows affe

  2. MySQLクエリでLIKE句を2回使う方法|OR条件で複数パターンを検索する

    MySQLでは、LIKE句を1つのクエリ内で2回以上使用することで、複数のパターンに一致するレコードを柔軟に抽出できます。この記事では、実際にテーブルを作成し、LIKE句を2回組み合わせた検索クエリの書き方を手順を追って解説します。 1. サンプルテーブルを作成する まず、検索対象となるテーブルを作成します。 mysql> create table DemoTable2009 ( Name varchar(20) ); Query OK, 0 rows affected (0.51 sec) 2. テーブルにレコードを挿入する INSERT文を使って、いくつかの名前データを登録し