Mysql 在同一字段上使用大小写更新值

Mysql 在同一字段上使用大小写更新值,mysql,Mysql,我正在MySQL中使用一个case来尝试这个update语句,但它不会改变任何值 查询没有给出任何错误,但有0个受影响的行 UPDATE `tablename` SET `type` = ( CASE WHEN `type` = 1 THEN 1 WHEN `type` = 2 THEN 2 WHEN `type` = 3 THEN 19 WHEN `type` = 4 THEN null WHEN `typ

我正在MySQL中使用一个case来尝试这个update语句,但它不会改变任何值

查询没有给出任何错误,但有0个受影响的行

UPDATE `tablename`
SET `type` = (
    CASE
        WHEN `type` = 1 THEN 1
        WHEN `type` = 2 THEN 2
        WHEN `type` = 3 THEN 19
        WHEN `type` = 4 THEN null
        WHEN `type` = 5 THEN null
        WHEN `type` = 6 THEN 81
        WHEN `type` = 7 THEN null
        WHEN `type` = 8 THEN 22
        WHEN `type` = 9 THEN 21
        WHEN `type` = 10 THEN 78
        WHEN `type` = 11 THEN 80
        WHEN `type` = 12 THEN 79
    END)
WHERE user_id IS NOT NULL;

任何人都知道我如何解决这个问题。

尝试将
类型移动到
案例之后

UPDATE `tablename`
SET `type` = 
    CASE `type`
        WHEN  1 THEN 1
        WHEN  2 THEN 2
        WHEN  3 THEN 19
        WHEN  4 THEN null
        WHEN  5 THEN null
        WHEN  6 THEN 81
        WHEN  7 THEN null
        WHEN  8 THEN 22
        WHEN  9 THEN 21
        WHEN  10 THEN 78
        WHEN  11 THEN 80
        WHEN  12 THEN 79
    END
WHERE user_id IS NOT NULL;
对我来说工作非常好。我制作了它以适应我的测试数据。请重新上传值并重试


还要检查是否有用户id不为null的用户,查询看起来很正常。建议使用select来尝试是否返回任何记录

SELECT *, CASE
        WHEN `type` = 1 THEN 1
        WHEN `type` = 2 THEN 2
        WHEN `type` = 3 THEN 19
        WHEN `type` = 4 THEN null
        WHEN `type` = 5 THEN null
        WHEN `type` = 6 THEN 81
        WHEN `type` = 7 THEN null
        WHEN `type` = 8 THEN 22
        WHEN `type` = 9 THEN 21
        WHEN `type` = 10 THEN 78
        WHEN `type` = 11 THEN 80
        WHEN `type` = 12 THEN 79
    END as test 
FROM `tablename` WHERE user_id IS NOT NULL

这没有帮助,仍然有0个受影响的行。所有值仍然相同。即使您删除了
参数
?如果使用select语句,是否将返回任何记录?
SELECT *, CASE
        WHEN `type` = 1 THEN 1
        WHEN `type` = 2 THEN 2
        WHEN `type` = 3 THEN 19
        WHEN `type` = 4 THEN null
        WHEN `type` = 5 THEN null
        WHEN `type` = 6 THEN 81
        WHEN `type` = 7 THEN null
        WHEN `type` = 8 THEN 22
        WHEN `type` = 9 THEN 21
        WHEN `type` = 10 THEN 78
        WHEN `type` = 11 THEN 80
        WHEN `type` = 12 THEN 79
    END as test 
FROM `tablename` WHERE user_id IS NOT NULL