SQLite3 で WHERE ・・・ IN ・・・ で簡素に複数を指定するクエリです。
- table
a b c 1 2 3 4 5 6 7 8 9
こんな table を例にすると
SELECT * FROM table WHERE ( a, b, c ) IN ( VALUES (0,1,2), (1,2,3), (2,3,4) )
こんな風に書けます。
一見するとよくある書き方ですが、MySQL とかとは IN の書き方が少々違うため忘れそうってことで備忘録として。
なお、こういう書き方は以前は出来なかったような気がするので、多分、最近の SQLite3 でサポートされるようになったんだと思います。
以前は、これでもか!って感じに、
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 で複数指定するクエリ |
ページ別名 : | 未設定 |
ページ作成 : | takatsuka |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | なし |
ユーザー : | なし |
Counter: 4635,
today: 6,
yesterday: 1
初版日時: 2018-05-25 (金) 21:47:43
最終更新: 2018-05-25 (金) 21:47:43 (JST) (2125d) by takatsuka