gpt4 book ai didi

Mysql 将 varchar 视为 int 错误?

转载 作者:行者123 更新时间:2023-11-29 08:26:12 26 4
gpt4 key购买 nike

我刚刚运行了这个查询:

UPDATE mytable SET mycol='text' WHERE mycol=0;

重点是 mycol 列是一个 varchar,但我也将其视为 int。令我惊讶的是,where 子句在表的所有行上都计算为 true,无论是否为空。

那么,为什么非空字符串比较等于整数零?

最佳答案

这是 MySQL 中详细记录的行为。

当在需要数字的上下文中遇到字符串时,MySQL 会将字符串转换为数字,从字符串开头的数字开始。当没有数字时它停止。因此,没有数字的字符串将变为 0。

如果您想要正确的比较,请使用单引号:

UPDATE mytable SET mycol='text' WHERE mycol = '0';

Here是准确的报价:

To cast a string to a numeric value in numeric context, you normally do not have to do anything other than to use the string value as though it were a number:

mysql> SELECT 1+'1'; -> 2

关于Mysql 将 varchar 视为 int 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17843329/

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