一下是一个SQL的小问题,困扰了3分钟,写下来记录一下。
数据库是MYSQL 5, 表的结构很简单, 就一个字段是abc,整型。
一下语句运行的结果是一样的。自己不留神,导致困扰了3分钟。
select * from table1 fromabc = '123'
select * from table1 from abc = '123_1'
以上语句原来是查找是否数据存在,结果123_1和123,只要里面有123, 就是存在的。
其实原因很简单,就是mysql 把123_1转成整数在比较,它把123_1转成整数后就是123了。所以2个语句的返回结果是一样的。
本文记录了一个简单的MySQL查询问题,即当使用整型字段与包含数字的字符串进行比较时,MySQL会将字符串转换为整型再进行比较。这可能导致意料之外的结果,例如'123_1'和'123'被视为相同。
174万+

被折叠的 条评论
为什么被折叠?



