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

MySQLのIN句で一致するレコードを取得する方法

テーブル内のレコードから特定の値に一致するデータを取得したい場合、MySQLのIN()演算子を使用すると便利です。IN()を使うことで、複数の条件値を1つのクエリで簡潔に指定できます。

この記事では、実際にテーブルを作成し、IN()を使ってIdが1と11のレコードを取得する手順を解説します。

サンプルテーブルの作成

まず、CREATE TABLE文でテーブルを作成します。GenderカラムにはENUM型を使用しています。

mysql> create table DemoTable
(
    Id int,
    FirstName varchar(20),
    Gender ENUM('Male','Female')
);
Query OK, 0 rows affected (1.73 sec)

レコードの挿入

次に、INSERT文を使ってテーブルに複数のレコードを追加します。

mysql> insert into DemoTable values(1,'Chris','Male');
Query OK, 1 row affected (0.47 sec)
mysql> insert into DemoTable values(10,'Emma','Female');
Query OK, 1 row affected (1.88 sec)
mysql> insert into DemoTable values(9,'Emma','Male');
Query OK, 1 row affected (0.70 sec)
mysql> insert into DemoTable values(11,'Isabella','Female');
Query OK, 1 row affected (0.46 sec)

登録済みレコードの確認

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

mysql> select *from DemoTable;

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

+------+-----------+--------+
| Id   | FirstName | Gender |
+------+-----------+--------+
|    1 | Chris     | Male   |
|   10 | Emma      | Female |
|    9 | Emma      | Male   |
|   11 | Isabella  | Female |
+------+-----------+--------+
4 rows in set (0.00 sec)

IN()を使って一致するレコードを取得

ここで本題です。Idが「1」と「11」に一致するレコードだけを取り出すには、WHERE句とIN()を組み合わせて次のように記述します。

mysql> select *from DemoTable where Id IN(1,11);

実行すると、以下のように該当する2件のレコードのみが出力されます。

+------+-----------+--------+
| Id   | FirstName | Gender |
+------+-----------+--------+
|    1 | Chris     | Male   |
|   11 | Isabella  | Female |
+------+-----------+--------+
2 rows in set (0.00 sec)

まとめ

IN()演算子を使えば、「OR」条件を複数書く代わりに、カンマ区切りで値を列挙するだけで一致するレコードを効率的に取得できます。特に抽出対象の値が多い場合や、動的に条件を組み立てる場合に可読性が高く便利な構文です。

  1. MySQLで特定の月と年に基づいてレコードを取得する方法

    MySQLで特定の月と年に基づいてレコードを取得する方法日付データから特定の月と年に該当するレコードだけを抽出したい場合、MySQLの MONTH() 関数と YEAR() 関数を組み合わせて使用します。ここでは、実際にテーブルを作成し、データを挿入して、条件に合うレコードを取得するまでの手順を具体的に解説します。1. サンプルテーブルの作成まず、日付型(DATE)のカラムを持つテーブルを作成します。mysql> create table DemoTable1846     (     PurchaseDat

  2. MySQLでURLレコードの一部を検索して置き換える方法

    MySQLでURLなどの文字列レコードの一部を検索して置き換えたい場合、最もシンプルな方法はREPLACE()関数を使うことです。この記事では、実際のサンプルを使いながら、URLの一部を一括置換する手順をわかりやすく解説します。1. サンプルテーブルの作成まず、URLを格納するためのテーブルを作成します。mysql> create table DemoTable2025 -> ( -> URL text -> );Query OK, 0 rows affected (0.88 sec)2. テストデータの挿入次に、INSERTコマンドを使ってサンプルレ