WHERE句に複数の条件を指定する
SQLのWHERE句でAND,ORを使った複数条件指定の基本を解説します。
ANDで条件指定
ANDでは指定した条件を全て満たす行を絞り込む。(積集合)
(例)tenpo_idカラムとshohin_idカラムどちらにも条件を指定する
tenpo_idが1でかつ、shohin_idが2のカラムを抽出
SELECT * FROM zaiko WHERE tenpo_id = 1 AND shohin_id = 2
ORで条件指定
OR条件では指定した条件いずれかに満たす行を抽出します。(和集合)
(例)同じshohin_idカラムで複数の条件を抽出する
shohin_idが1または2
SELECT * FROM zaiko WHERE shohin_id = 1 OR shohin_id = 2
ANDと間違えやすいですが、列内の値は一つしか存在し得ないのでOR条件で抽出します。
また、OR条件で間違えやすいケースですが、以下のように条件のあとにカラム名の指定が無い場合は、全ての行を抽出してしまいます。
(NG)SELECT * FROM zaiko WHERE shohin_id = 1 OR 2
(番外編)BETWEEN条件で数値の範囲指定を行う
絞り込み対象カラムのデータが数値や日付、日時型の場合はBETWEEN句を使用することで、範囲を指定することができます。
WHERE 対象カラム BETWEEN 最小 AND 最大
(例)idの値が1~5までの行を抽出する
SELECT * FROM zaiko WHERE id BETWEEN 1 AND 5