在MYSQL中使用Case更新语句

时间:2013-07-23 15:21:08

标签: mysql heidisql

我有这个问题,我调查了五个以上的房子,但什么都没找到:(。我有一张叫做支持的桌子。

UPDATE support s SET    s.Survey_Status = 0
CASE 
WHEN s.Survey_Status = 0 Then 1
WHEN s.Survey_Status = 1 Then 2 
End 
Where last_response < ADDDATE(CURDATE(), INTERVAL 1 DAY) 
and support_waiting ="n" ;

我需要更新支持表并设置survey_status = 1,除了表中的第五行将是= 2。例如,如果我的survey_ status从1到10 = 1,那么第五个将= 2。有什么想法吗? 顺便说一句,我正在使用mysql Heidi。

先谢谢

1 个答案:

答案 0 :(得分:1)

您可以合并user variablesMOD()

UPDATE   support, (SELECT @r:=0) init
SET      Survey_Status = IF(MOD(@r:=@r+1,5), 1, 2)
WHERE    last_response < CURRENT_DATE + INTERVAL 1 DAY
     AND support_waiting = 'n'
ORDER BY ...