Mysql 在同一字段上使用大小写更新值
我正在MySQL中使用一个case来尝试这个update语句,但它不会改变任何值 查询没有给出任何错误,但有0个受影响的行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
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