【全球报资讯】Mysql中关于0值判断的坑及解决
目录
Mysql关于0值判断的坑简练问题如下原因解决方式问题引申Mysql判断数值0误区总结Mysql关于0值判断的坑
最近遇到一个Mysql返回多值的问题,最后发现是mysql过滤条件中0值判断的问题。
简练问题如下
有个INT字段a,默认值为0,程序传入的判断条件是 a = "abacd"。
传入的是一个字符串,结果a=0的所有数据都返回了。
(资料图片仅供参考)
原因
mysql会在逻辑判断时,如果是整型判断,但是传入的是字符串,如果字符串不是数字,则字符串会被转换为0。所以,
这段代码实际判断的条件是 a = 0。
解决方式
mysql中的逻辑判断,判断值的传入,应该与字段类型一致,整型判断整型,字符串判断字符串。如果避免不了,跨类型的判断,那么就需要根据业务逻辑,进行调整,避免掉入这个坑。
问题引申
如果字段a是否varchar类型,值为0,那么判断时应该用 a="0"判断,而不是 a = 0 判断,原因与上面的原因一致,字符串会被转换为0,结果最终判断的是 0 = 0。
Mysql判断数值0误区总结
mysql中判断数据表字段是否为0,当前数据表字段为int类型时,没有问题。若为char或者varchar类型时,则需要使用"0",显而易见,字符串和整型是不能等同的。所以不要 犯这么低级的错误。
以下是从网上搜索到的mysql搜索的原理:
mysql会把字段的值先转成整数,然后再对比。
如果字段的第一位是字符串,那么转成整数就是0了,
一般对字符串的搜索都要加上引号。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
X 关闭
X 关闭
- 1联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 2亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 3现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 4如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 5AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 6转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 7充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 8好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 9名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 10亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战