MySQL max() min() 函数取值错误
2022/6/29 2:20:18
本文主要是介绍MySQL max() min() 函数取值错误,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天日志出现异常,一步一步debug发现SQL语句返回值出错,进一步发现是max()函数返回出错。点击跳转解决办法,赶时间的朋友可以去获得答案。当然我还是希望大伙看看原由。
select max(HTMBXH) from biz_mn_contract_temp;
返回值按理应该是10 ,结果返回了9。
网上查找后发现 是因为该字段的数据类型为 字符型 的时候 max会 自动补0 。
例如 HTMBXH:varchar(10) ,MySQL会自动补0然后比较。
例如
正常的话 max应该返回 8999999999 但是返回的却是9 。
因为MySQL比较是将9补0直到列最大位 变成9000000000 所以 9000000000>8999999999
按照这个理论 91 和9000000001 比较 ,91补0, 9100000000>9000000001 所以 返回91
![](/upload/202206/29/202206290220180188.png)
解决办法:(max min都适用)
1. 直接修改列属性 改成 数值型 或者 日期型 即可
2. 直接强制转换类型 例如
select max(HTMBXH+0) from biz_mn_contract_temp;
这样可以获取正确的数值。
这篇关于MySQL max() min() 函数取值错误的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享