sql中字符串与数字的比较坑


今天在弄sql中发现一个问题,先上图,

 

 如我们所见字符串'card'=0是相等的,为什么呢?如果是时间开发中的sql代码没有任何问题,查询处理的数据也是会有问题的,这个是很严重的事故!

 

在经历了百度查询MySQL中字符串与数字比较的坑 - 活在夢裡 - 博客园 (cnblogs.com)这篇文的解决了我的疑惑,以此来保留一下自己所犯的错误。

总的来说在比较的时候,String是可能会被转为数字的。

而对于‘card’部分不能截取出数字的字符串来说,转换的结果自然就是0了。

解决方案为:对数字部分进行转义CONCAT(0,'')

 

 

 

总结:尽量避免字符串与数字的直接比较


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM