goo blog サービス終了のお知らせ 

職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

SQLiteの IN 句について

2020年06月30日 | sqlite
SQLiteの IN 句について


【開発環境】
OS:Win10(64ビット)
データベース:SQLite3
コマンドプロンプト入力

【 IN 句】
IN 句→カラムの値が複数の値のいずれかと一致するかどうかという条件式を記述する事が、できます。

書式
SELECT カラム名 , ... FROM テーブル名
WHERE カラム IN(値1, 値2, ...);
また、
NOT 演算子を組み合わせることで指定した値のリストに含まれて居ない場合のデータを取得することもできます。

書式
SELECT カラム名 , ... FROM テーブル名
WHERE カラム NOT IN(値1, 値2, ...);


実行例
sqlite> select * from user;
id name address
---------- ---------- ----------
1 Suzuki Osaka
2 Yamada Tokyo
3 Kudou Chiba
4 Ushijima Nagoya
5 Hanada Saitama
6 Okamoto Sapporo
7 Shima Tokyo
address カラムの値が 'Tokyo' 、'Chiba' 、 'Saitama' に一致するデータを取得。
sqlite> select * from user where address in('Tokyo', 'Chiba', 'Saitama');
id name address
---------- ---------- ----------
2 Yamada Tokyo
3 Kudou Chiba
5 Hanada Saitama
7 Shima Tokyo
sqlite>

【他のテーブルから取得した値のリストと比較】
書式
SELECT カラム名 , ... FROM テーブル名
WHERE カラム IN(SELECT カラム名 FROM テーブル名);

実行
次のようなテーブルを作成
sqlite> create table kantou(id integer, pref text);
sqlite> insert into kantou values(1, 'Tokyo');
sqlite> insert into kantou values(2, 'Chiba');
sqlite> insert into kantou values(3, 'Saitama');
sqlite> insert into kantou values(4, 'Kanagawa');
sqlite>
sqlite>
sqlite> select * from kantou;
id pref
---------- ----------
1 Tokyo
2 Chiba
3 Saitama
4 Kanagawa
sqlite>
それでは user テーブルから値を取得します。条件式として address カラムの値が kantou テーブルの pref カラムの値のいずれかと一致するように設定します
結果
sqlite> select * from user where address in(select pref from kantou);
id name address
---------- ---------- ----------
2 Yamada Tokyo
3 Kudou Chiba
5 Hanada Saitama
7 Shima Tokyo
sqlite>

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« SQLitのBETWEEN 句(範囲指定) | トップ | 息子介護物語-エピソード21(... »
最新の画像もっと見る

コメントを投稿

sqlite」カテゴリの最新記事