現: 2018-05-25 (金) 21:47:43 takatsuka[3] [4] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | 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 の開発者様に感謝です。 |
(This host) = https://thinkridge.com