我有一个填充了不正确数据的表,所以我需要切换一些数字。我不确定这是否是最好的方法,但我正在考虑使用具有多个 IF 条件的 UPDATE 语句。就像是:

UPDATE
    `orders`
SET
    `orderPriority` = 1
    IF(`orderPriority` = 2)
OR
    `orderPriority` = 2
    IF(`orderPriority = 3)
OR
    `orderPriority` = 3
    IF(`orderPriority` = 1);

显然这行不通,但我的 SQL 技能在这里缺乏。任何帮助表示赞赏!

最佳答案

UPDATE orders
    SET orderPriority = CASE WHEN orderPriority = 1 THEN 3
                             WHEN orderPriority = 2 THEN 1
                             WHEN orderPriority = 3 THEN 2
                        END
    WHERE orderPriority IN (1,2,3)

关于MySQL UPDATE 多个 IF 条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5265919/

10-12 15:47