SQLite3で複数のユーザーIDを一度に指定して検索を絞り込んでみます。
使用するデータはパイソンでgimeiでSQLite3のRDB用のテストデータを用意してみるで作成したものを使います。
※ sample.sqlite3のパスが/path/to/dir/ledger.sqlite3で話を進めます。
# ledger.sqlite3があるディレクトリまで移動 $ cd /path/to/dir $ sqlite3 ledger.sqlite3
今回はユーザーIDが5、15と25のユーザーに絞り込んでみます。
SQLite3で複数の条件で結果を絞り込んでみるでは複数の条件でWHERE句内でANDという演算子で条件を繋ぎましたが、5か15か25といったどれかの場合はOR演算子を使用して、
sqlite> SELECT * FROM users WHERE id = 10 OR id = 15 OR id = 25; +----+------+ | id | name | +----+------+ | 10 | 伊純 | | 15 | 晴樹 | | 25 | 鋼一 | +----+------+
のように繋ぎます。
ただ、この書き方だと条件が増える程構文が冗長化してしまうため、IN演算子を使って下記のように纏めます。
sqlite> SELECT * FROM users WHERE id IN (5, 15, 25); +----+------+ | id | name | +----+------+ | 10 | 伊純 | | 15 | 晴樹 | | 25 | 鋼一 | +----+------+
今回のような複数の条件で絞り込みを行う構文は
SELECT * FROM テーブル名 WHERE 条件1 OR 条件2;
のようにORで繋ぎます。
IN演算子の方は
SELECT * FROM テーブル名 WHERE カラム IN (値1、値2....)
になります。
SQLite IN: Determine a Value Matches Any Value In A List