执行时的SQL Case表达式

时间:2019-07-07 19:38:57

标签: mysql sql case

我想在表上执行某些更新时更新一个单元格。 我有以下几种可能的状态:

  • 第一状态: state_1 NULL
  • 第二状态: state_2
  • 第三种状态: state_3
  • 第四州: state_4

这是未执行的查询:

UPDATE `status`
SET `state` = (CASE
    WHEN `state` = 'state_1' or NULL THEN 'state_2'
    WHEN `state` = 'state_2' THEN 'state_3'
    ELSE 'state_4'
END;)
WHERE `id` = '1';

出了什么问题?我该如何解决?谢谢

1 个答案:

答案 0 :(得分:1)

UPDATE `status`
SET `state` = CASE WHEN `state` = 'state_1' or `state` is NULL THEN 'state_2'
                    WHEN `state` = 'state_2' THEN 'state_3'
                    ELSE 'state_4'
               END
WHERE `id` = '1';