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

MySQLのIN()演算子を使ってテーブルから選択したレコードを表示する方法

はじめに

MySQLでは、IN演算子を使うことで、WHERE句に複数の値を簡潔に指定できます。「OR」条件を何度も書くよりも可読性が高く、特定のレコードだけを抽出したい場合に非常に便利です。この記事では、実際にテーブルを作成し、データを挿入してから、IN演算子で選択したレコードを表示するまでの手順を解説します。

サンプルテーブルの作成

まず、CREATE TABLE文でテーブルを作成します。

mysql> create table DemoTable(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
CustomerName varchar(100)
);
Query OK, 0 rows affected (0.51 sec)

レコードの挿入

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

mysql> insert into DemoTable(CustomerName) values('Adam Smith');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable(CustomerName) values('Chris Brown');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable(CustomerName) values('David Miller');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(CustomerName) values('Carol Taylot');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(CustomerName) values('Carol Taylor');
Query OK, 1 row affected (0.13 sec)

全レコードの確認

SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

上記のクエリを実行すると、次のような出力が得られます。

+----+--------------+
| Id | CustomerName |
+----+--------------+
| 1 | Adam Smith |
| 2 | Chris Brown |
| 3 | David Miller |
| 4 | Carol Taylot |
| 5 | Carol Taylor |
+----+--------------+
5 rows in set (0.00 sec)

IN演算子で選択したレコードを表示する

それが本題です。以下のクエリは、IN演算子を使用して、Idが「2」または「5」のレコードのみを表示します。

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

実行結果は次のとおりです。

+----+--------------+
| Id | CustomerName |
+----+--------------+
| 2 | Chris Brown |
| 5 | Carol Taylor |
+----+--------------+
2 rows in set (0.00 sec)

補足:IN演算子とOR条件の関係

「where Id IN(2,5)」は、「where Id = 2 OR Id = 5」と書いた場合と同じ結果になります。しかし、IN演算子を使えば条件値をカンマ区切りで並べるだけでよいため、対象が増えてもクエリが簡潔になり、可読性や保守性の面で有利です。

また、逆に「指定した値以外」を抽出したい場合はNOT INを使います。例えば「where Id NOT IN(2,5)」とすれば、Idが2と5以外のレコードを取得できます。用途に応じて使い分けるとよいでしょう。

  1. MySQLで複数のキーワードに一致するレコードを抽出する方法|RLIKE演算子の使い方を解説

    RLIKE演算子を使った複数条件でのレコード絞り込み MySQLで複数の単語(キーワード)のいずれかに一致するレコードを抽出したい場合は、RLIKE演算子を使用します。RLIKEは正規表現によるパターンマッチングを行う演算子で、|(パイプ)で区切ることで、OR条件のように複数の値を指定できます。 基本的な構文は以下のとおりです。 SELECT * FROM yourTableName WHERE yourColumnName RLIKE yourValue1|yourValue2; サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> CREATE

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

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