MySQL max() min() 函数取值错误

今天日志出现异常,一步一步debug发现SQL语句返回值出错,进一步发现是max()函数返回出错。点击跳转解决办法,赶时间的朋友可以去获得答案。当然我还是希望大伙看看原由。

select  max(HTMBXH) from biz_mn_contract_temp;

MySQL max() min() 函数取值错误

返回值按理应该是10 ,结果返回了9。

MySQL max() min() 函数取值错误

网上查找后发现 是因为该字段的数据类型为字符型 的时候 mysql 将从左到右依次比较字符 ASCII码值大小 ,存在不相等即返回ASCII 码大的数据(min返回ASCII码小的数据)。

例如 HTMBXH:varchar(10)

MySQL max() min() 函数取值错误

例如

MySQL max() min() 函数取值错误

正常的话 max应该返回 8999999999但是返回的却是9 。

因为MySQL 从第一个字符开始比较 8的ASCII 码为56 ,9的ASCII 为57 所以 返回9

按照这个理论91 和9000000001比较 第一个字符9的ASCII 相等 第二个 字符 1(49)>0(48) ,存在ASCII 不相等的情况 即返回ASCII 大的数据 91

解决办法:(max min都适用)

  1. 直接修改列属性 改成 数值型 或者 日期型 即可

  2. 直接强制转换类型 例如

select  max(HTMBXH+0) from biz_mn_contract_temp;

这样可以获取正确的数值。

Original: https://www.cnblogs.com/cking98/p/16419244.html
Author: 林间小路
Title: MySQL max() min() 函数取值错误

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620946/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MySQL触发器

    触发器 先来个实际的案例 触发器概述 和存储过程一样,都是嵌入在MySQL服务器中的一段程序 触发器由 事件触发,比如INSERT ,UPDATE 等用户的动作或触发某项行为,自动…

    数据库 2023年5月24日
    095
  • 学习笔记——Django项目中的请求

    2022-10-03 url中的位置参数 位置参数存放的位置 是子应用中的自定义的”urls.py”文件中的路由中。 位置参数的设置: 如果位置参数很多,那…

    数据库 2023年6月14日
    056
  • MySQL事务、隔离级别

    一、事务简介 事务是操作的集合,它是一个不可分割的工作单元。事务将向整个系统提交或取消操作请求,即这些操作要么同时成功,要么同时失败。 [En] A transaction is …

    数据库 2023年5月24日
    075
  • CentOS7安装配置Tomcat

    1.安装jdk jdk 安装有两种方式,本文只介绍rpm格式的安装包 安装jdk:在安装包所在的目录下执行如下语句 安装完成后,默认安装在/usr/java下。 配置环境变量,执行…

    数据库 2023年6月11日
    065
  • MySQL常用数据类型及细节

    类型 类型举例 整数类型 TINYINT、SMALLINT、MEDIUMINT、INT(或INTEGER)、BIGINT 浮点类型 FLOAT、DOUBLE 定点数类型 DECIM…

    数据库 2023年5月24日
    081
  • java扫描某个包下的所有java类并加载

    最近在学习java的反射和注解,实际情景中需要扫描某个包下的所有java类,然后使用类加载器加载类。 基本思路,获得程序的路径扫描src下某个包内的子包和java类,实现也比较简单…

    数据库 2023年6月11日
    092
  • SQL 基础

    在平时的工作中,大家可能是 ORM 战士。但是 ORM 之下,还是原生的 SQL。这是整理 SQL 基础时的一些记录。 数据定义语言,用来定义数据库对象,包括数据库、数据表和列。 …

    数据库 2023年6月16日
    086
  • Jmeter性能测试场景的创建和运行

    目录 性能测试场景的分析 项目背景 Jmeter指标 性能测试场景的设计以及准备 * 性能测试的总结 性能测试场景的分析 项目背景 ​ 实际工作中,我们拿到一个项目一般来说都会是项…

    数据库 2023年6月6日
    090
  • 为知笔记迁移到印象笔记-从入门到放弃

    最新进展 已经放弃了,目前正在逐步把笔记迁移到本地,用icloud来同步。 为什么放弃迁移? 没有找到好的迁移方案,迁移过去文档不方便查找和使用 为什么放弃印象笔记? 1.主要使用…

    数据库 2023年6月9日
    085
  • Wireshark记录总结

    一. wireshark介绍说明:网络封包分析开源软件功能:截取网络封包,使用WinPCAP作为接口,直接与网卡进行数据报文交换 二、wireshark安装及使用【出处:jack_…

    数据库 2023年6月14日
    082
  • StoneDB(石原子科技)受邀参与《开源数据库服务商服务能力分级要求》标准第一次讨论会

    2022年8月9日下午,StoneDB数据库主体研发单位石原子科技与华为、openGauss开源社区、云和恩墨、甲骨文等组织受邀参与《开源数据库服务商服务能力分级要求》标准第一次讨…

    数据库 2023年5月24日
    070
  • JDBC

    JDBC 一、JDBC概述 什么是JDBC? JDBC 是使用 Java 语言操作关系型数据库的一套 API。这套 API 是交由不同的数据库厂商实现的。我们利用 JDBC 编写操…

    数据库 2023年6月14日
    0103
  • mysql

    mysql 1.1数据库 关系型数据库:数据存储在硬盘上 [En] Relational database: the data is stored in the hard disk…

    数据库 2023年5月24日
    087
  • 有趣的网络知识

    简单的网络入侵方法 命令 描述 attrib +s +a +h +r 磁盘:文件&#…

    数据库 2023年6月11日
    091
  • MySQL删除重复数据

    重复数据如图所示 自关联,保留id最小的那一条,其它的都删除 DELETE t1 FROM invest_year t1, invest_year t2 WHERE t1.pro_…

    数据库 2023年6月14日
    085
  • MySQL45讲之InnoDB刷脏策略

    本文介绍 InnoDB 的刷脏控制策略,它是如何控制刷脏速率的,以及一些相关参数。 了解 MySQL 的刷脏策略有什么意义? 当一条正确的 SQL 执行时偶尔延迟较高,无法复现场景…

    数据库 2023年5月24日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球