MySQL CASE文 SELECTでの使い方を分かりやすく解説
MySQLでは、SELECT文の中でCASE文を使用して条件に応じて異なる値を返すことができます。一般的な構文は以下の通りです:
SELECT
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END AS alias_name
FROM table_name;
condition1やcondition2は論理条件であり、result1やresult2は条件に一致した場合に返される値です。全ての条件に一致しない場合に返されるデフォルト値はdefault_resultであり、結果の別名はalias_nameです。
以下は例です。
productsというテーブルがあり、product_id列とproduct_price列が含まれています。今、製品価格に基づいて対応する価格帯を返したいとします。
SELECT
product_id,
product_price,
CASE
WHEN product_price < 50 THEN 'Cheap'
WHEN product_price BETWEEN 50 AND 100 THEN 'Moderate'
WHEN product_price > 100 THEN 'Expensive'
ELSE 'Unknown'
END AS price_range
FROM products;
この例では、製品の価格範囲に応じて、対応する価格範囲を返します。価格が50未満の場合は「安い」、50から100の間の場合は「適度」、100よりも高い場合は「高い」を返します。それ以外の場合は「不明」を返します。