Mysql 执行时的SQL大小写表达式
我想在表上执行某些更新时更新一个单元格。 我有以下可能的状态:Mysql 执行时的SQL大小写表达式,mysql,sql,case,Mysql,Sql,Case,我想在表上执行某些更新时更新一个单元格。 我有以下可能的状态: 第一个状态:状态_1或NULL 第二状态:状态2 第三状态:状态3 第四状态:状态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
- 第一个状态:状态_1或NULL
- 第二状态:状态2
- 第三状态:状态3
- 第四状态:状态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';
问题是什么?我如何解决这种情况?谢谢
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';