更改MySQL表中的多个值

时间:2014-12-31 14:08:08

标签: mysql sql sql-update case where

我需要在MySQL表中更改多个记录的特定字段/列的值以及特定日期之间的值。使用MySQL工作台v5.2。因此,例如,我需要在两个特定日期之间检查值是否超过x。如果它超过x,那么我需要使它= y。我正在尝试下面的声明,它不起作用。它在WHERE子句上给我一个错误。

UPDATE `mydb`.`mytable` WHERE `Time_Stamp`
BETWEEN '2014-12-31 00:00:00'
    AND '2014-11-31 06:00:00'
IF `my_Column` > x Then
    `my_Column` = y
End IF;

即使它确实接受了WHERE子句,我也不确定IF语句是否可以继续使用。正如你所看到的,我是一个学习者。所以任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

试试这个:

UPDATE mydb.mytable 
SET my_Column = CASE WHEN my_Column > x THEN y ELSE x END
WHERE Time_Stamp BETWEEN '2014-12-31 00:00:00' AND '2014-11-31 06:00:00'