前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql隐式转换造成的查询结果不正确案例

mysql隐式转换造成的查询结果不正确案例

原创
作者头像
卖菜小弟
修改2020-08-03 10:38:54
1.3K0
修改2020-08-03 10:38:54
举报
文章被收录于专栏:mysql8mysql8

突然有个开发的朋友告诉我他用引号查询数据的结果和不带引号的不一致那么导致这问题的原因是什么呢。

不带引号查询结果为两条,带了引号为1条记录

首先查看表结构发现表的字段类型为varchar。

查询sql大概是这样

代码语言:javascript
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档