WHERE の使い方
条件に合う行だけにする
書き方
SELECT … FROM 表 WHERE 条件;
= <> < > <= >= で比べます。文字列や日付は '…' で囲みます。AND・OR・NOT で条件を組み合わせ、かっこで優先順位を決めます。
よく使うオプション
| オプション | 意味 |
|---|---|
= / <> | 等しい / 等しくない(!= も使える) |
< > <= >= | 大小を比べる(数・日付・文字列) |
AND / OR | 両方に合う / どちらかに合う |
NOT | 条件を反対にする |
( ) | かっこで、先に調べる条件を決める |
例
SELECT name FROM employees WHERE dept_id = 2;
部署 2 の社員だけを出します。数はそのまま、文字列や日付は '…' で囲みます。
SELECT name, salary FROM employees WHERE salary >= 300000 AND dept_id = 1;
部署 1 で、給与が 30 万以上の社員だけを出します。AND は両方の条件に合う行だけを残します。
SELECT * FROM orders WHERE status = 'cancel' OR total = 0;
取り消した注文か、金額が 0 の注文を出します。OR はどちらか一方に合えば残ります。
SELECT * FROM orders WHERE (status = 'new' OR status = 'paid') AND total > 5000;
状態が new か paid で、しかも 5000 より大きい注文です。かっこが無いと AND が先に結びつくので、意味が変わります。
よくある間違い・注意
- AND は OR より先に結びつきます。OR を混ぜるときは、かっこで囲むと間違えません。
- NULL の列は = でも <> でも合いません。値が無い行を探すときは IS NULL を使います。
- 文字列の比べ方は大文字と小文字を区別します。'Tokyo' と 'tokyo' は別の値です。
実際に打って練習する
SQL コースの Lv3「条件で絞る WHERE」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。