一尘不染

如何在MySQL中正确使用CASE..WHEN

mysql

这是一个演示查询,请注意,这非常简单,仅在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)

在数据库上运行此命令时,我得到:

3 0
3 0
3 0
3 0
3 0


阅读 233

收藏
2020-05-17

共1个答案

一尘不染

删除course_enrollment_settings.base_price后立即CASE

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

CASE有两种不同的形式,如手册中所述。在这里,您要使用第二种形式,因为您正在使用
搜索条件

2020-05-17