开头向大家问好,看了上篇文章阅读数激增到300+,觉得写的文章还是对一些人有帮助的,很开心。
好了,说了那么多,让我们来看今天遇到的问题:
今天公司网站有个注册用户恶意留言,所以运营人员决定封禁该账号,网站注册均为手机号。
写sql查询该手机号的用户,查询中发现了一个问题,不写引号的话,直接写数字是可以查询出该行的,但是加上引号后便查不出,效果如下图:
几番Google之后,发现时Mysql对于不同数据类型的条件会进行隐式转化(隐式就是你看不到,Mysql自己按照规则将值转化后,再去匹配),不加引号的话,会将loginname作为Int类型进行匹配,所以字符串‘15920147610_disabled’精度上会有损失,如PHP的float类型的精度损失一样。
具体有一些内容网上都有,官网也有介绍,我就不一一写出来了,可以看看几篇文章:
//这篇文章比较全面,列举了几个例子,关于Mysql的隐式转化的规则介绍等:
https://yq.aliyun.com/articles/39477
:)