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よりも高い場合は「高い」を返します。それ以外の場合は「不明」を返します。

bannerAds