SQLの条件式を徹底解説|WHERE・BETWEEN・IN・LIKE の基本と実例

SQLの条件式(WHERE・BETWEEN・IN・LIKE)の基本を解説するイメージ図
SQLの条件式を理解すると、データ検索の自由度が大幅に広がります。

はじめに

SQL入門で SELECT 文や基本的な WHERE 条件を学んだ方は、「もっと柔軟にデータを絞り込みたい」と感じているのではないでしょうか?
本記事では、WHERE の応用としてよく使われる BETWEEN・IN・LIKE を中心に、実例を交えながらわかりやすく解説します。

まだSQLの基礎を復習していない方は、先に
👉 はじめてのSQL入門ガイド|基本構文から実用例まで徹底解説
を読んでおくと理解がスムーズです。

1. WHEREの基本

まずは基本の WHERE 条件からおさらいしましょう。

SELECT * FROM employees
WHERE age >= 30;

この例では、employees テーブルから 30歳以上の社員 を取得しています。

よく使う比較演算子は以下の通りです:

演算子意味
=等しい
<>等しくない
>, <大なり、小なり
>=, <=以上、以下

さらに詳しい基本構文については
👉 SQL入門ガイド
で解説しています。

2. BETWEEN|範囲指定で抽出

ある範囲の値をまとめて指定したい場合は BETWEEN を使います。

SELECT * FROM employees
WHERE age BETWEEN 20 AND 29;

👉 このクエリは 20歳から29歳まで の社員を抽出します。

  • BETWEEN A AND BA以上B以下 を意味します。
  • 数値だけでなく、日付型にも使えます。
SELECT * FROM orders
WHERE order_date BETWEEN '2025-01-01' AND '2025-01-31';

→ 2025年1月の注文データを取得。

3. IN|複数の値を指定して検索

IN複数の候補をまとめて指定 するときに便利です。

SELECT * FROM employees
WHERE department IN ('Sales', 'HR', 'IT');

👉 この例では、所属部署が 営業・人事・IT の社員を取得します。

OR を並べるよりシンプルに書けるのが利点です。

4. LIKE|部分一致・パターン検索

文字列の一部にパターンを指定したいときは LIKE を使います。

ワイルドカード

  • %:0文字以上の任意の文字
  • _:任意の1文字

例1:名前が「S」で始まる社員

SELECT * FROM employees
WHERE name LIKE 'S%';

例2:住所に「東京」を含む顧客

SELECT * FROM customers
WHERE address LIKE '%東京%';

例3:社員コードが「A」で始まり3文字目が「5」

SELECT * FROM employees
WHERE emp_code LIKE 'A_5%';

5. 実用例まとめ

条件式は組み合わせることで威力を発揮します。

SELECT * FROM employees
WHERE department = 'Sales'
  AND age BETWEEN 25 AND 35
  AND name LIKE 'S%';

👉 このクエリは、営業部に所属し、25〜35歳で、名前が「S」で始まる社員 を抽出します。

6. 注意点・補足

  • 大文字小文字の扱い
    • データベースによって異なります(MySQLはデフォルトで区別しないことが多い)。
  • LIKEのエスケープ
    • %_ を文字として検索したい場合はエスケープが必要です。
  • NULLの扱い

まとめ

  • WHERE 条件を理解するとSQLの「検索力」が格段に広がる
  • BETWEEN:範囲指定
  • IN:複数候補を指定
  • LIKE:部分一致検索

基礎をしっかり固めることで、実務でも「欲しいデータだけを的確に抽出」できるようになります。
次回はさらに一歩進んで、NULLの扱い方 や「思った通りにデータが取れないときの注意点」を解説します。

関連記事

基礎を振り返りたい方は 👉 SQL入門ガイド
NULLの扱いを学びたい方は 👉 SQLのNULLを正しく扱う方法
さらに実務で役立つJOINを学びたい方は 👉 SQLのJOINを徹底解説|INNER JOIN・LEFT JOINの違いと使いどころ
をご覧ください。