データの検索(複数値を一度に検索)
複数値を条件に指定し抽出する
複数の値から一つでも一致したデータを抽出する場合、WHERE句にORを連ねて記述することでも実現可能ですが、IN句を使用することで、それらを一度に指定することが可能です。
SELECT * FROM テーブル名 WHERE 列1 IN (検索値1, 検索値2 ・・・ );
それではサンプルを見てみましょう。
以下のようなcompanyテーブルがあります。
id | comp | dept | section |
---|---|---|---|
A00001 | ABC株式会社 | A部門 | A課 |
A00002 | ABCD株式会社 | A部門 | B課 |
A00010 | 株式会社XY | B部門 | C課 |
A00011 | 株式会社ZZZ | C部門 | D課 |
複数指定した検索値のいずれかに該当するデータを抽出するためのSQLです。
1 2 |
SELECT * FROM company WHERE id IN ('A00001', 'A00010'); |
上記を実行し、抽出された結果がこちらです。
id | comp | dept | section |
---|---|---|---|
A00001 | ABC株式会社 | A部門 | A課 |
A00010 | 株式会社XY | B部門 | C課 |
IN句に指定した2行のデータが抽出されました。
なお、IN句の否定形は「NOT IN」になります。
複数値での検索は使用頻度が高いので、ぜひ参考にしてみてください。