🔰【SQL】WHERE 句にAND, ORで複数条件指定

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

Follow me!