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以外のレコードを取得できます。用途に応じて使い分けるとよいでしょう。
-
MySQLで複数のキーワードに一致するレコードを抽出する方法|RLIKE演算子の使い方を解説
RLIKE演算子を使った複数条件でのレコード絞り込み MySQLで複数の単語(キーワード)のいずれかに一致するレコードを抽出したい場合は、RLIKE演算子を使用します。RLIKEは正規表現によるパターンマッチングを行う演算子で、|(パイプ)で区切ることで、OR条件のように複数の値を指定できます。 基本的な構文は以下のとおりです。 SELECT * FROM yourTableName WHERE yourColumnName RLIKE yourValue1|yourValue2; サンプルテーブルの作成 まず、動作確認用のテーブルを作成しましょう。 mysql> CREATE
-
MySQLのストアドプロシージャでテーブルのレコードを表示する方法
MySQLでは、ストアドプロシージャ内にSELECT文を組み込むことで、テーブルのレコードを簡単に表示できます。ストアドプロシージャを活用すると、よく使うクエリを再利用可能な形で保存できるため、作業の効率化につながります。ここでは、実際の手順を順番に解説していきます。1. テーブルを作成するまず、サンプル用のテーブルを作成します。mysql> create table DemoTable1933 ( ClientName varchar(20) ); Query OK, 0 rows affected (0.00 sec)2. レコードを挿入する次に、INSERT