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

本文探讨了在SQL中字符串与数字比较时出现的问题,当字符串不能转换为数字时,默认结果为0。作者通过实例分享了自己的错误经验,并引用了相关博客文章作为解决方案,即对数字部分进行转义,如使用CONCAT(0,'')。总结建议避免直接进行字符串与数字的比较,以防止潜在的数据处理错误。
摘要由CSDN通过智能技术生成

------------恢复内容开始------------

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值