我有一行MySQL,我想使用CASE语句。但是,我不认为我做得对。我需要检查一个标志是否设置为特定值,然后根据它设置的内容更新该标志。这是我的MySQL:
$sql = 'UPDATE table SET flag = CASE WHEN flag = 2 THEN 0 ELSE flag = 3'
这是有效的SQL吗?我想要做的是如果将标志设置为值2,将其设置为0,否则将其设置为3.如何修复我的SQL以便它执行此操作?
答案 0 :(得分:1)
您当前的查询非常接近,代码为:
UPDATE table
SET flag = CASE WHEN flag = 2 THEN 0 ELSE 3 END
当flag
等于0
时,这会将flag
列更新为2
,如果它不等于2
,则值将更新为3
。