MySQL:CASE语句问题

时间:2013-03-18 19:36:21

标签: mysql

我有一行MySQL,我想使用CASE语句。但是,我不认为我做得对。我需要检查一个标志是否设置为特定值,然后根据它设置的内容更新该标志。这是我的MySQL:

$sql = 'UPDATE table SET flag = CASE WHEN flag = 2 THEN 0 ELSE flag = 3'

这是有效的SQL吗?我想要做的是如果将标志设置为值2,将其设置为0,否则将其设置为3.如何修复我的SQL以便它执行此操作?

1 个答案:

答案 0 :(得分:1)

您当前的查询非常接近,代码为:

UPDATE table 
SET flag = CASE WHEN flag = 2 THEN 0 ELSE 3 END

flag等于0时,这会将flag列更新为2,如果它不等于2,则值将更新为3