如何在MySQL中使用案例?

时间:2016-01-15 04:46:05

标签: mysql

我在MySQL中使用这种情况:

select name, age, time, countDay, dvt, total, dateLogin, 
 (total - datediff(NOW(), dateLogin)) as totalVal18,
 (total - age) as totalVal22
    case dvt 
        when dvt = 0 then countDay = totalVal18
        when dvt = 1 then countDay = totalVal22

更新1:

结构表是:dvt, total, countDaydouble类型。

dateLogindatetime类型。

用户输入为dateLoginage。 使用countDay输出以检查值。像:

where countDay >= 18

dvttinyintdvt就像age > 18age < 18

一样

错误如: 像case dvt when dvt = 0 then at line 2

这样的错误

使用公式时会发生错误吗?如何在case when MySQL中使用公式?

2 个答案:

答案 0 :(得分:2)

您错误地合并了案例结构的两个版本。

使用

case dvt 
    when 0 then totalVal18
    when 1 then totalVal22
end as countDay

或者

case
    when dvt = 0 then totalVal18
    when dvt = 1 then totalVal22
end as countDay

形式。见mysql's documentation on case

更新

您不能以这种方式使用列别名,您还需要在case语句中包含公式。

答案 1 :(得分:1)

检查此示例此处表格是指您的表格名称

SELECT CASE 
WHEN dvt > 18 THEN 1
ELSE 0 END AS 
countDay
FROM table