mysql隐式转换造成的查询结果不正确案例
时间:2022-07-22
本文章向大家介绍mysql隐式转换造成的查询结果不正确案例,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
突然有个开发的朋友告诉我他用引号查询数据的结果和不带引号的不一致那么导致这问题的原因是什么呢。
不带引号查询结果为两条,带了引号为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进行审核杜绝隐式转换。
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解