1. ホーム
  2. mysql

[解決済み] MySQLでCASE...WHENを正しく使うには?

2022-03-05 04:05:12

質問

以下はデモクエリですが、非常にシンプルで、base_price が 0 の場所のみを取得します。 それでも条件3が選ばれてしまう。

SELECT
   CASE course_enrollment_settings.base_price
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    WHEN course_enrollment_settings.base_price<101      THEN 2
    WHEN course_enrollment_settings.base_price>100 AND   
                      course_enrollment_settings.base_price<201 THEN 3
        ELSE 6
   END AS 'calc_base_price',
   course_enrollment_settings.base_price
FROM
    course_enrollment_settings
WHERE course_enrollment_settings.base_price = 0

base_pricedecimal(8,0)

これを私のDBで実行すると、次のようになります。

3 0
3 0
3 0
3 0
3 0

解決方法は?

を削除します。 course_enrollment_settings.base_price の直後に CASE :

SELECT
   CASE
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    ...
    END

CASE には2種類の形式があり、詳細は マニュアル . ここでは、2番目の形式を使用します。 検索条件 .