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

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

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

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

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

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

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

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

学有所思,思有所成。
原文地址:https://www.cnblogs.com/lqh969696/p/15593309.html