如何解决如何在MySQL中正确使用CASE..WHEN
删除course_enrollment_settings.base_price
后立即CASE
:
SELECT
CASE
WHEN course_enrollment_settings.base_price = 0 THEN 1
...
END
CASE
有两种不同的形式,如手册中所述。在这里,您要使用第二种形式,因为您正在使用搜索条件 。
解决方法
这是一个演示查询,请注意,这非常简单,仅在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_price
是 decimal(8,0)
在数据库上运行此命令时,我得到:
3 0
3 0
3 0
3 0
3 0