Mysql中关于0值判断的坑怎么解决

发布时间:2022-08-30 09:46:25 作者:iii
来源:亿速云 阅读:147

这篇文章主要介绍“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了,

一般对字符串的搜索都要加上引号。

关于“Mysql中关于0值判断的坑怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

推荐阅读:
  1. 关于if 判断等于0 和‘0’的问题
  2. python中判断值是不是为0的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:怎么用Java绘制迷宫动画并显示

下一篇:mybatis模糊查询之bind标签和concat函数怎么使用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》