问题原因:MySQL会强行将字符串转成数字(比如 '1axxxx'这个字符串在进行 in (1,2) 查询时,字符串会转成数字1,然后比较,于是这条记录就被查出来了)
解决方案:查询时WHERE条件与字段类型保持一致
SELECT * FROM test_table WHERE `test_column` IN (1,2)
结果:
1
1
2
1a960e34617f4a9f977f1ac8ad4d7c88.png
2
1f62dccdc9e84e1995abe1a89dfe3338.png
SELECT * FROM test_table WHERE `test_column` IN ('1','2')
结果:
1
1
2
2
问题原因:MySQL会强行将字符串转成数字
SELECT cast( '1a960e34617f4a9f977f1ac8ad4d7c88.png' AS SIGNED ), cast( 'a1960e34617f4a9f977f1ac8ad4d7c88.png' AS SIGNED )
结果:
1 0
本站文章除注明转载/出处外,均为原创,若要转载请务必注明出处。转载后请将转载链接通过邮件告知我站,谢谢合作。本站邮箱:admin@only4.work
尊重他人劳动成果,共创和谐网络环境。点击版权声明查看本站相关条款。