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 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

SQL 構文一覧(使い方と例)へ戻る