我可以在MySQL的SQL语句中使用IF吗?

时间:2017-07-21 13:25:46

标签: mysql sql if-statement triggers

UPDATE `order` SET `status` = IF `type` = 2 THEN 1 ELSE 2 END IF;

我在 MySQL 触发器中写了这句话,我收到了这个错误提示:

错误代码:1064

  

您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以便在#5; type = 2附近使用正确的语法。然后在第5行进行1结束

如何解决此错误?

2 个答案:

答案 0 :(得分:2)

您正在寻找CASE

UPDATE `order` 
SET    `status` = CASE WHEN `type` = 2 
                       THEN 1 
                       ELSE 2 
                  END;

答案 1 :(得分:1)

您需要使用IF() function而不是IF statement

UPDATE `order`
SET `status` = IF(`type` = 2, 1, 2);