【MySQL】条件分岐を利用して、欲しいデータ抽出しよう!

MySQL

MySQLで条件分岐を使用する方法はいくつかありますが、主に以下の3つが一般的です。


1. CASE 文を使う

SQL内で条件分岐をする場合に最も一般的な方法です。CASE文は、条件に基づいて値を切り替えることができます。

構文:

CASE
    WHEN 条件1 THEN 値1
    WHEN 条件2 THEN 値2
    ELSE 値3
END

例:
以下の例では、scoreに基づいて評価を表示します。

SELECT 
    student_name,
    score,
    CASE 
        WHEN score >= 90 THEN 'A'
        WHEN score >= 80 THEN 'B'
        WHEN score >= 70 THEN 'C'
        ELSE 'F'
    END AS grade
FROM students;

2. IF 関数を使う

MySQLのIF関数を使って、簡単な条件分岐を実現できます。

構文:

IF(条件, 条件が真の場合の値, 条件が偽の場合の値)

例:
以下の例では、salaryが50000以上かどうかでボーナスを分けます。

SELECT 
    employee_name,
    salary,
    IF(salary >= 50000, 'High Bonus', 'Low Bonus') AS bonus
FROM employees;

3. IF 条件を WHERE 句で使用する

条件を分岐してデータを絞り込む場合は、WHERE句にIFCASEを組み込むことができます。

例:
以下の例では、特定の条件に基づいて異なる検索結果を返します。

SELECT *
FROM orders
WHERE 
    (CASE 
        WHEN order_status = 'Pending' THEN 1
        ELSE 0
    END) = 1;

ただし、このような場合は単純に条件をANDORで書いたほうが可読性が高い場合もあります。


まとめ

  • 簡単な条件なら IF 関数を使用。
  • 複数の条件分岐が必要なら CASE 文を使用。
  • データの絞り込みで条件分岐を使う場合は WHERE 句や論理演算子を組み合わせて記述する。

用途によって使い分けると良いでしょう!

著者プロフィール
この記事を書いた人
ロジャー

Webアプリ開発を20年近く経験し、管理職なった今も時々ソースをいじるメインは営業職の管理者。もうすぐ40代。最近は、AIを活用して少しでも仕事やプライベートを面白くしていきたいと考えているおっさんです。困った事もAIなら解決してくれるはず!?

ロジャーをフォローする
MySQLシステム開発
ロジャーをフォローする
タイトルとURLをコピーしました