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

MySQLクエリで複数のOR句を書く代わりに使える最適な代替手段はIN()です

MySQLで複数の条件を指定する際、ORステートメントを何度も繰り返し書くよりも、IN()を使用する方が可読性が高く、効率的です。この記事では、IN()を使ったクエリの実装方法を具体的な例とともに解説します。

サンプルテーブルの作成

まず、デモ用のテーブルを作成します。

mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FirstName varchar(20)
-> );
Query OK, 0 rows affected (0.83 sec)

レコードの挿入

INSERTコマンドを使って、テーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable(FirstName) values('John');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(FirstName) values('Adam');
Query OK, 1 row affected (0.27 sec)
mysql> insert into DemoTable(FirstName) values('David');
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable(FirstName) values('Mike');
Query OK, 1 row affected (0.48 sec)
mysql> insert into DemoTable(FirstName) values('Bob');
Query OK, 1 row affected (0.09 sec)

テーブルの全レコードを確認

SELECTステートメントを使って、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable;

実行すると、以下のような結果が出力されます。

+----+-----------+
| Id | FirstName |
+----+-----------+
| 1 | John |
| 2 | Adam |
| 3 | David |
| 4 | Mike |
| 5 | Bob |
+----+-----------+
5 rows in set (0.00 sec)

IN()を使ったクエリ

ここで、Id が 2、3、5 のレコードを取得したい場合を考えてみましょう。ORを使うと「Id=2 OR Id=3 OR Id=5」と書く必要がありますが、IN()を使えば以下のようにシンプルに記述できます。

mysql> select *from DemoTable where Id IN(2,3,5);

実行すると、以下のような結果が出力されます。

+----+-----------+
| Id | FirstName |
+----+-----------+
| 2 | Adam |
| 3 | David |
| 5 | Bob |
+----+-----------+
3 rows in set (0.00 sec)

まとめ

上記の出力のとおり、Id が 2、3、5 のレコード(Adam、David、Bob)だけが取得できました。このようにIN()を使うことで、複数のOR条件を1つの簡潔な式にまとめられます。条件が増えるほどコードの可読性が向上し、メンテナンス性も高まるため、複数の値との一致を判定する場合はIN()の使用を推奨します。

  1. MySQLでAND演算子とOR演算子を組み合わせたSELECTクエリの使い方

    MySQLでは、WHERE句の中でAND演算子とOR演算子を組み合わせることで、複数の条件に基づいた柔軟なデータ抽出が可能になります。この記事では、実際にテーブルを作成し、ANDとORを組み合わせたSELECTクエリの実行方法を手順を追って解説します。1. サンプルテーブルの作成まず、CREATE TABLE文を使用してテーブルを作成します。mysql> create table DemoTable ( StudentId int, StudentName varchar(20), StudentSubject varchar(20) ); Query OK, 0

  2. 単一のMySQLクエリで複数のLIKE演算子を組み合わせる方法

    単一のMySQLクエリで複数のLIKE演算子を使う方法 MySQLで複数の部分一致検索を1つのクエリで実行したい場合は、OR演算子を使って複数のLIKE条件を連結します。氏名・年齢・国名など、異なるカラムに対する検索条件を1つのWHERE句にまとめて指定できます。 基本構文 複数のLIKE句を組み合わせるには、以下の構文を使用します。 select * from yourTableName where yourColumnName1 LIKE %yourValue1% or yourColumnName2 LIKE %yourValue2% or yourColumnName3 L