gpt4 book ai didi

mysql - 将值设置为 '0' 时更新数据库

转载 作者:行者123 更新时间:2023-11-29 10:10:27 25 4
gpt4 key购买 nike

我在 mysql 中观察到一个非常奇怪的行为,并且非常乐意提供一些建议。

我想将列中的字段从 1 更新到 4、将 6 更新到 9。为此,我将其用作测试

UPDATE `test` SET `id`= case when 'id'= 1 then 4 else 'id' end where id =1

但是,当我在 phpmyadmin 中运行上述内容时,值将更改为数字 0 而不是 4。

如果我在不区分大小写的情况下运行相同的查询

UPDATE `test` SET `id`= 4 WHERE `id` =1

效果很好。

当我运行时

UPDATE `test` SET `id`= 
case when 'id'= 1 then 4
when 'id'= 6 then 9

else 'id' end where id in (1,6)

它将 1 和 6 替换为“0”

最佳答案

id是一个数值,因为mysql中的id通常是INT类型。您疯狂地混合了反引号 (```) 和 ('),因此您将字符串 'id' 隐式转换为 int,结果为 0。

select CAST('foo' as UNSIGNED) ---> 0

因此您可能希望更改查询以始终使用反引号

UPDATE `test` SET `id`= case when `id` = 1 then 4 else `id` end where `id` = 1

关于mysql - 将值设置为 '0' 时更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51051712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com