SELECT...IN句のサンプル

WHERE句でORを使ってたくさんの検索値を対象にしてSELECTしたい場合がありますよね。
でも、たくさんありすぎるとORだらけのWHEREになってしまい大変です。
こんなの時はIN句を使うとスマートにSQL構文を記述することができます。
以下にIN句を使用したサンプルを記します。
尚、動作確認環境に記したPostgreSQL, MySQL, SQLite3で動作確認を行いました。

関連記事

動作確認環境

使用したサンプルテーブル

以下のSQLによりテーブルを作成しデータをINSERTしました。
filesql1.sql 改行コードLF

CREATE TABLE t1 (
    no      INT PRIMARY KEY
   ,country VARCHAR(20)
   ,capital VARCHAR(20)
);
INSERT INTO t1 VALUES (1,'Japan','Beijing');
INSERT INTO t1 VALUES (2,'China','Canberra');
INSERT INTO t1 VALUES (3,'Australia','Bangkok');
INSERT INTO t1 VALUES (4,'Thailand','Bangkok');
INSERT INTO t1 VALUES (5,'Indonesia','Jakarta');

テーブル構成は以下の通りです。

no primarycountrycapital
1JapanTokyo
2ChinaBeijing
3AustraliaCanberra
4ThailandBangkok
5IndonesiaJakarta

IN句を使ってSELECTを行う

INを使うとWHERE句で書いた場合と以下のような構文の違いがでます。
ORを使用する必要がないので簡潔に記述できます。

SQL構文の違いが確認できますね。
IN句をサブクエリーにすることもできます。
以下のリンクにIN句をサブクエリーにした記事を公開していますので参考にしてください。

以上、IN句のサンプルSQL構文でした。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS