MySQL ОБНОВЛЕНИЕ Несколько Условий ЕСЛИ - PullRequest
1 голос
/ 11 марта 2011

У меня есть таблица, заполненная неверными данными, поэтому мне нужно переключить некоторые числа. Я не уверен, что это будет наилучшим способом, но я думаю об использовании оператора UPDATE с несколькими условиями IF. Что-то вроде:

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

Очевидно, что это не работает, но мои навыки SQL здесь отсутствуют. Любая помощь приветствуется !!!

Ответы [ 2 ]

6 голосов
/ 11 марта 2011
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 голосов
/ 11 марта 2012

Да, но что, если вы хотите выполнить несколько условных проверок ??

SET orderPriority = CASE WHEN ((field1 = 1) && (field2 = 2)) THEN 4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...