Mysql查询条件加引号与不加引号的区别

本文探讨了一位运营人员在封禁恶意留言用户时遇到的MySQL隐式类型转换问题。当使用数字作为条件查询时,系统能正确返回结果;但若用字符串形式的数字查询,则无法找到对应记录。文章通过实例解释了MySQL如何处理不同数据类型的条件,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开头向大家问好,看了上篇文章阅读数激增到300+,觉得写的文章还是对一些人有帮助的,很开心。

好了,说了那么多,让我们来看今天遇到的问题:

今天公司网站有个注册用户恶意留言,所以运营人员决定封禁该账号,网站注册均为手机号。

写sql查询该手机号的用户,查询中发现了一个问题,不写引号的话,直接写数字是可以查询出该行的,但是加上引号后便查不出,效果如下图:

几番Google之后,发现时Mysql对于不同数据类型的条件会进行隐式转化(隐式就是你看不到,Mysql自己按照规则将值转化后,再去匹配),不加引号的话,会将loginname作为Int类型进行匹配,所以字符串‘15920147610_disabled’精度上会有损失,如PHP的float类型的精度损失一样。

具体有一些内容网上都有,官网也有介绍,我就不一一写出来了,可以看看几篇文章:

//这篇文章比较全面,列举了几个例子,关于Mysql的隐式转化的规则介绍等:

https://yq.aliyun.com/articles/39477

:)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值