Mysql查询条件加引号与不加引号的区别
开头向大家问好,看了上篇文章阅读数激增到300+,觉得写的文章还是对一些人有帮助的,很开心。
好了,说了那么多,让我们来看今天遇到的问题:
今天公司网站有个注册用户恶意留言,所以运营人员决定封禁该账号,网站注册均为手机号。
写sql查询该手机号的用户,查询中发现了一个问题,不写引号的话,直接写数字是可以查询出该行的,但是加上引号后便查不出,效果如下图:
几番Google之后,发现时Mysql对于不同数据类型的条件会进行隐式转化(隐式就是你看不到,Mysql自己按照规则将值转化后,再去匹配),不加引号的话,会将loginname作为Int类型进行匹配,所以字符串‘15920147610_disabled’精度上会有损失,如PHP的float类型的精度损失一样。
具体有一些内容网上都有,官网也有介绍,我就不一一写出来了,可以看看几篇文章:
//这篇文章比较全面,列举了几个例子,关于Mysql的隐式转化的规则介绍等:
https://yq.aliyun.com/articles/39477
:)
作者:木兆园
来源链接:https://blog.csdn.net/admindev/article/details/78330178
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。