我知道将数字与 VARCHAR 字段进行比较是愚蠢的想法,我不应该比较它,但我只是想了解原因。
我的表具有以下架构。
Table: user
--------------------
number varchar(24)
我使用 MyISAM 作为存储引擎。
数字字段包含混合数据,即数字(如“9999999”)和字符串(如“signup”)。
我正在尝试运行以下查询。
SELECT * FROM user where number=0
但它返回数字字段包含“signup”等字符串值或数字字段为空的所有行。
如果我运行以下查询..
SELECT * FROM user where number=1 or SELECT * FROM user where number=97654
它们不会返回任何行,因为没有任何行的数字字段中包含 1 或 97654 值。
有人可以帮我理解mysql如何将0与varchar字段进行比较吗?
最佳答案
关于MYSQL 在将 0 与 varchar 字段进行比较时给出奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19312750/