2013-04-30 2 views
0

У меня есть таблица с именем chart с двумя колоннами, названный UPC_REPORT_ID и UPC_FLAG Я пытаюсь подготовить запрос обновить UPC_FLAG=1 если UPC_REPORT_ID=1 и одновременно я хочу обновить UPC_FLAG=0 где UPC_REPORT_ID !=2 Пожалуйста, дайте мне предложенияОбновление же флаг дважды с использованием MYSQL

+2

Все строки, удовлетворяющие 'UPC_REPORT_ID = 1', также удовлетворяют условию' UPC_REPORT_ID! = 2'. В конце концов все 'UPC_FLAG' будут установлены на одно и то же значение – Ejaz

ответ

1
UPDATE chart SET UPC_FLAG = (CASE WHEN UPC_REPORT_ID=1 THEN 1 ELSE CASE WHEN UPC_REPORT_ID !=2 THEN 0 END END) 
0
UPDATE chart 
SET UPC_FLAG = CASE UPC_REPORT_ID 
        WHEN 1 THEN 1 
        WHEN 2 then UPC_FLAG 
        ELSE 0 
       END 
0

Использование КОГДА

UPDATE ... установить UPC_FLAG = случай, когда UPC_REPORT = 1 ТОГДА 1 КОГДА UPC_REPORT_ID <> 2 ТОГДА 0 END WHERE ...

--dmg

0

То же самое с ответом, если в Barmar в

UPDATE chart 
SET UPC_FLAG = IF(UPC_REPORT_ID = 1,1,IF(UPC_REPORT_ID <> 2,2,0)) 
Смежные вопросы