突然有个开发的朋友告诉我他用引号查询数据的结果和不带引号的不一致那么导致这问题的原因是什么呢。
不带引号查询结果为两条,带了引号为1条记录
首先查看表结构发现表的字段类型为varchar。
查询sql大概是这样
select c1,c2,c3 from table1 where c2=1284769464291737600
众所周知varchar不带引号的查询会产生隐式转换,根据这个线索查找官方文档
大概意思是超过2的53次放的整数不能被精确表示。会转换为float并且四舍五入
https://dev.mysql.com/doc/refman/5.7/en/type-conversion.html
避免类似情况发生就需要指定合理的开发规范,并对sql进行审核杜绝隐式转换。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。