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

MySQLのOR条件を使ってテーブルから複数の代替レコードを取得する方法

はじめに

テーブルから複数の特定レコード(代替レコード)を一度に取得したい場合は、OR条件を使用します。各条件を「OR」でつなぐことで、いずれかの条件に一致するすべての行を取り出すことができます。基本的な構文は以下の通りです。

select *from yourTableName where yourColumnName=yourValue1 OR yourColumnName=yourValue2……N;

サンプルテーブルの作成

まず、動作確認用のテーブルを作成しましょう。

mysql> create table DemoTable772 (
   Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(100),
   Age int
);
Query OK, 0 rows affected (0.76 sec)

レコードの挿入

次に、insertコマンドを使ってテーブルにレコードを追加します。

mysql> insert into DemoTable772(Name,Age) values('Chris',21);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable772(Name,Age) values('Robert',26);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable772(Name,Age) values('Mike',27);
Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable772(Name,Age) values('Sam',24);
Query OK, 1 row affected (0.45 sec)
mysql> insert into DemoTable772(Name,Age) values('Carol',28);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable772(Name,Age) values('David',25);
Query OK, 1 row affected (0.93 sec)

全レコードの表示

select文を実行して、テーブル内のすべてのレコードを確認します。

mysql> select *from DemoTable772;

出力結果は以下の通りです。

+----+--------+------+
| Id | Name   | Age  |
+----+--------+------+
|  1 | Chris  | 21   |
|  2 | Robert | 26   |
|  3 | Mike   | 27   |
|  4 | Sam    | 24   |
|  5 | Carol  | 28   |
|  6 | David  | 25   |
+----+--------+------+
6 rows in set (0.00 sec)

OR条件を使ったクエリの実行例

ここでは、Idが「2」「4」「6」のいずれかに一致するレコードを取得してみましょう。OR条件を使ったクエリは以下のようになります。

mysql> select *from DemoTable772 where Id=2 OR Id=4 OR Id=6;

実行すると、次の出力が得られます。

+----+--------+------+
| Id | Name   | Age  |
+----+--------+------+
|  2 | Robert | 26   |
|  4 | Sam    | 24   |
|  6 | David  | 25   |
+----+--------+------+
3 rows in set (0.01 sec)

補足:IN演算子を使った書き方

同じカラムに対して複数の値を指定する場合は、IN演算子を使うとより簡潔に記述でき、可読性も向上します。条件の数が多くなるほど、IN演算子の方が便利です。

mysql> select *from DemoTable772 where Id IN(2,4,6);

このクエリでも、上記のOR条件とまったく同じ結果が得られます。用途に応じて使い分けるとよいでしょう。

  1. MySQLのDELETE文とIN句を組み合わせて1つのクエリで複数レコードを削除する方法

    MySQLでは、IN()句を活用することで、複数の条件値に一致するレコードを1つのDELETEクエリでまとめて削除できます。個別に削除クエリを実行する必要がなく、効率的なデータ操作が可能になります。ここでは、サンプルテーブルを作成し、実際にIN()句を使ったレコード削除の手順を解説します。1. サンプルテーブルの作成まず、テーブルを作成しましょう。mysql> create table DemoTable1922 ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentName varchar(20)

  2. MySQLのストアドプロシージャでテーブルのレコードを表示する方法

    MySQLでは、ストアドプロシージャ内にSELECT文を組み込むことで、テーブルのレコードを簡単に表示できます。ストアドプロシージャを活用すると、よく使うクエリを再利用可能な形で保存できるため、作業の効率化につながります。ここでは、実際の手順を順番に解説していきます。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable1933 ( ClientName varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERT