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演算子を組み合わせることで、柔軟に複数の条件・値を指定してレコードを取得することが可能です。
-
MySQLでグループごとの最小値を複数取得するクエリの書き方
MySQLで「名前ごとなど、グループ単位の最小値」を一度に取得したい場面はよくあります。そんなときは、サブクエリとMIN()関数を組み合わせることで簡単に実現できます。この記事では、各人物の最も低いスコアを抽出する具体的手順を、テーブル作成から順に解説します。 サンプルテーブルの作成 まず、CREATE TABLE文でテスト用のテーブルを作成します。 mysql> create table DemoTable -> ( -> Name varchar(20), &nbs
-
MySQLでWHERE句に複数の条件を指定してデータを更新する方法
MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&