2011-03-10 4 views
1

J'ai une table qui a été remplie avec des données incorrectes, donc j'ai besoin de changer certains nombres. Je ne suis pas sûr que ce soit la meilleure façon de procéder, mais je pense utiliser une instruction UPDATE avec plusieurs conditions IF. Quelque chose comme:MySQL UPDATE Multiple IF Conditions

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

Évidemment, cela ne fonctionne pas, mais mes compétences SQL manquent ici. Toute aide est appréciée !!!

Répondre

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

Oui, mais que se passe-t-il si vous souhaitez effectuer plusieurs vérifications conditionnelles?

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