目次

複数の値に一致する条件式を設定する - IN 演算子の利用 - SQL

複数の値に一致するレコードを取り出すSQLを紹介します。

概要

複数の値に一致するレコードを取り出す場合は、IN演算子を用いると効果的です。

書式

select ... from ... where (フィールド名) in ('(値1)', '(値2)', '(値3)', ...);
inの後方には問い合わせ文を指定することもできます。
select ... from ... where (フィールド名) in (select ... from ... where ...);

メモ
数値や日付のフィールドで特定の値ではなく、値の範囲で検索したい場合は、BETWEEN演算子を利用します。 BETWEEN演算子の使用方法についてはこちらの記事を参照してください。

例1

次のテーブルを用意します。
products
idmodelnamecategoryprice
1C-XM01モーダンチェアチェア56000
2X-XD05ラージデスクテーブル87000
3A-DA40ラウンドダイニングチェアチェア28000
4O-XX100ナチュラルオフィスチェア13800
5R-D400ラウンドダイニングテーブルテーブル128000
6R7000ウッドキャビネットその他32000
7B-200リネンベッドベッド184500
8B-250ホワイトダブルベッドベッド324850
9W-80ワーキングチェアチェア45000
10EG-10Xエルゴノミクスデスクテーブル88500


以下のSQLを実行します。
select * from products where category in ('チェア', 'その他')

解説

 where category in ('チェア', 'その他')
上記のin演算子では、productsテーブルのcategory列の値が、'チェア'か'その他'の行であるものを検索します。

結果

上記のSQLを実行すると以下の結果となります。

idmodelnamecategoryprice
1C-XM01モーダンチェアチェア56000
3A-DA40ラウンドダイニングチェアチェア28000
4O-XX100ナチュラルオフィスチェア13800
6R7000ウッドキャビネットその他32000
9W-80ワーキングチェアチェア45000
補足
先のSQLは以下のSQLと同じ動作になります。
select * from ProductsB where category='チェア' or category='その他'

例2

次のテーブルを用意します。
products
idnamepricecategory
1Penguin250Bird
2Bear1050Mammal
3Duck150Bird
4Camel550Mammal
5Owl185Bird
6Whale880Mammal

以下のSQLを実行します。priceが 150, 880, 1050 のレコードを選択します。
select * From ProductsA where price in (150,880,1050)

結果

SQLの実行結果は次の通りです。
idnamepricecategory
2Bear1050Mammal
3Duck150Bird
6Whale880Mammal

例3

次のテーブルを用意します。
products
idmodelnamecategoryprice
1C-XM01モーダンチェアチェア56000
2X-XD05ラージデスクテーブル87000
3A-DA40ラウンドダイニングチェアチェア28000
4O-XX100ナチュラルオフィスチェア13800
5R-D400ラウンドダイニングテーブルテーブル128000
6R7000ウッドキャビネットその他32000
7B-200リネンベッドベッド184500
8B-250ホワイトダブルベッドベッド324850
9W-80ワーキングチェアチェア45000
10EG-10Xエルゴノミクスデスクテーブル88500

target
idcategory
1チェア
2ベッド

上記のテーブルにおいて、以下のSQLを用います。
select * from products where category in (select category from target)

解説

下記のin演算子では、targetテーブルのcategory列に含まれる値が、productsテーブルのcategoryに含まれるものを検索します。
 where category in (select category from target)

結果

上記のSQLを実行すると以下の結果となります。

idmodelnamecategoryprice
1C-XM01モーダンチェアチェア56000
3A-DA40ラウンドダイニングチェアチェア28000
4O-XX100ナチュラルオフィスチェア13800
7B-200リネンベッドベッド184500
8B-250ホワイトダブルベッドベッド324850
9W-80ワーキングチェアチェア45000

著者
iPentec.com の代表。ハードウェア、サーバー投資、管理などを担当。
Office 365やデータベースの記事なども担当。
最終更新日: 2023-03-28
作成日: 2014-08-12
iPentec all rights reserverd.