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
句にIF
やCASE
を組み込むことができます。
例:
以下の例では、特定の条件に基づいて異なる検索結果を返します。
SELECT *
FROM orders
WHERE
(CASE
WHEN order_status = 'Pending' THEN 1
ELSE 0
END) = 1;
ただし、このような場合は単純に条件をAND
やOR
で書いたほうが可読性が高い場合もあります。
まとめ
- 簡単な条件なら
IF
関数を使用。 - 複数の条件分岐が必要なら
CASE
文を使用。 - データの絞り込みで条件分岐を使う場合は
WHERE
句や論理演算子を組み合わせて記述する。
用途によって使い分けると良いでしょう!