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

MySQLのWHERE句で複数の値を取得する方法(OR演算子の使い方)

はい、MySQLのWHERE句でも複数の値を取得できます。その場合は、OR演算子を使って複数の条件を組み合わせます。

この記事では、実際にサンプルテーブルを作成し、WHERE句とOR演算子を組み合わせて複数の条件に一致するレコードを取得する手順を、具体的なSQL文とともに解説します。

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

まず、従業員情報を格納するテーブルを作成します。

mysql> create table DemoTable1421
    -> (
    -> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> EmployeeName varchar(20),
    -> EmployeeSalary int
    -> );
Query OK, 0 rows affected (0.82 sec)

このテーブルには、従業員ID(自動採番の主キー)、従業員名、給与の3つのカラムを定義しています。

2. テストデータの挿入

次に、INSERT文を使ってレコードを挿入します。

mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Chris',10000);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Bob',15000);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('David',8000);
Query OK, 1 row affected (0.09 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Carol',8500);
Query OK, 1 row affected (0.39 sec)
mysql> insert into DemoTable1421(EmployeeName,EmployeeSalary) values('Mike',14500);
Query OK, 1 row affected (0.16 sec)

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

SELECT文ですべてのレコードを表示してみましょう。

mysql> select * from DemoTable1421;

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

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
|          1 | Chris        |          10000 |
|          2 | Bob          |          15000 |
|          3 | David        |           8000 |
|          4 | Carol        |           8500 |
|          5 | Mike         |          14500 |
+------------+--------------+----------------+
5 rows in set (0.00 sec)

4. WHERE句とOR演算子で複数の値を取得する

ここが本題です。OR演算子を使うことで、「従業員IDが1」「従業員名がDavid」「給与が14500」という3つの異なる条件のいずれかに一致するレコードを一度に取得できます。

mysql> select * from DemoTable1421 
    -> where EmployeeId=1 OR EmployeeName='David' OR EmployeeSalary=14500;

実行結果:

+------------+--------------+----------------+
| EmployeeId | EmployeeName | EmployeeSalary |
+------------+--------------+----------------+
|          1 | Chris        |          10000 |
|          3 | David        |           8000 |
|          5 | Mike         |          14500 |
+------------+--------------+----------------+
3 rows in set (0.00 sec)

IDが1の「Chris」、名前が「David」、給与が14500の「Mike」の3件が正しく取得できました。

補足:IN演算子を使ったより簡潔な書き方

同じカラムに対して複数の値を指定したい場合は、IN演算子を使うとコードがすっきりします。

mysql> select * from DemoTable1421 where EmployeeId IN(1, 3, 5);

このように、MySQLではWHERE句にOR演算子やIN演算子を組み合わせることで、柔軟に複数の条件・値を指定してレコードを取得することが可能です。

  1. MySQLでグループごとの最小値を複数取得するクエリの書き方

    MySQLで「名前ごとなど、グループ単位の最小値」を一度に取得したい場面はよくあります。そんなときは、サブクエリとMIN()関数を組み合わせることで簡単に実現できます。この記事では、各人物の最も低いスコアを抽出する具体的手順を、テーブル作成から順に解説します。 サンプルテーブルの作成 まず、CREATE TABLE文でテスト用のテーブルを作成します。 mysql> create table DemoTable     -> (     -> Name varchar(20),  &nbs

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

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