2011-03-10 607 views
1

我有一張已填充不正確數據的表,所以我需要切換一些數字。我不確定這是否是最好的方式,但我正在考慮在多個IF條件下使用UPDATE語句。就像:MySQL UPDATE多個IF條件

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

顯然這不起作用,但我的SQL技能缺乏。任何幫助表示讚賞!

回答

6
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) 
3

是的,但是如果你想執行多個條件檢查?

SET orderPriority = CASE WHEN ((field1 = 1) && (field2 = 2)) THEN 4