Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 执行时的SQL大小写表达式_Mysql_Sql_Case - Fatal编程技术网

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

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

  • 第一个状态:状态_1NULL
  • 第二状态:状态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';