ページへ戻る

− Links

 印刷 

技術系備忘録​/データベース​/SQLite​/WHERE IN で複数指定するクエリ のソース :: シンクリッジ

xpwiki:技術系備忘録/データベース/SQLite/WHERE IN で複数指定するクエリのソース

  
SQLite3 で WHERE ・・・ IN ・・・ で簡素に複数を指定するクエリです。

- table
|a|b|c|h
|1|2|3|
|4|5|6|
|7|8|9|

こんな table を例にすると

#prettify{{
SELECT * FROM table WHERE ( a, b, c ) IN ( VALUES (0,1,2), (1,2,3), (2,3,4) )
}}
こんな風に書けます。
一見するとよくある書き方ですが、MySQL とかとは IN の書き方が少々違うため忘れそうってことで備忘録として。

なお、こういう書き方は以前は出来なかったような気がするので、多分、最近の SQLite3 でサポートされるようになったんだと思います。

以前は、これでもか!って感じに、
#prettify{{
SELECT * FROM table WHERE ( a=0 AND b=1 AND c=2 ) OR ( a=1 AND b=2 AND c=3 ) OR ( a=2 AND b=3 AND c=4 )
}}
こんな風に書くしかなかった気がします。この例ではカラム名が1文字だからまだいいですが、けっこうキツイなーと思う次第です。

常に改善し続けている SQLite の開発者様に感謝です。

  

  • 技術系備忘録/データベース/SQLite/WHERE IN で複数指定するクエリ のバックアップソース(No. All)