IN述語を使用して、複数の条件を指定しレコードを検索する方法を解説します。
構文
column_name IN (value1[, value2, ...])
column_name: カラム名 value1: 比較する値1 value2: 比較する値2 戻り値 - column_name = value1 or column_name = value2 or ... を満たす場合: true column_name = value1 or column_name = value2 or ... を満たさない場合: false
サンプルプログラム
name | age
---------+-----
Taro | 23
Hanako | 23
Jiro | 22
Haruo | 42
Natsuko | 35
Akio | 28
Fuyumi | 26
-- employeeテーブルのageが22または26または28のレコードの全カラム情報を参照
SELECT * FROM employee WHERE age IN (22, 26, 28);
■出力結果
name | age
--------+-----
Jiro | 22
Akio | 28
Fuyumi | 26
補足情報
IN述語には、以下のように副問い合わせ式( FROM句やWHERE句などで入れ子になったSELECT文 )を記述することも可能です。
-- employee
name | age
---------+-----
Taro | 23
Hanako | 23
Jiro | 22
Haruo | 42
Natsuko | 35
Akio | 28
Fuyumi | 26
-- young_employee
young_age
-----------
22
23
24
25
-- employeeテーブルのageが
-- young_employeeテーブルのyoung_age(副問い合わせ)のいずれかと等しいレコードの全カラム情報を参照
SELECT * FROM employee WHERE age IN (SELECT age FROM young_employee);
■出力結果
name | age
--------+-----
Taro | 23
Hanako | 23
Jiro | 22
コメント