mysql max 函数的陷阱

age  0,1,2,3,4,50,6

类似的一个sql

SELECT max(age)
FROM
  (SELECT age
   FROM xxx) a

在我的机器上返回了 6

50被判定为比6小,我猜max是拿age当字符来计算大小了

解决的办法是在age后面加一个  +0 :

SELECT max(age+0)
FROM
  (SELECT age
   FROM xxx) a
时间: 2024-11-01 18:46:29

mysql max 函数的陷阱的相关文章

MySQL max函数获取最大值错误

问题描述 通过sql查询得到的最大值为947669 但是通过查看表数据的最大值为1120184 这是因为registered_Live_User字段的数据类型为varchar类型. 所以max获取的最大值会从头开始比较,947669的第一位为9,1120184的第一位为1,所以max函数获取的最大值为9开头的数值. 解决办法 如果在不修改数据库表结构的情况下. 可以在max函数里面+0解决. 这样获取的值才是最大值 原文地址:https://www.cnblogs.com/oyjg/p/1256

Mysql中max函数的使用说明

MySQL 中的Max() 函数是用来找出记录集中最大值的记录: 注意: 对字符型数据的最大值,是按照首字母由A-Z的顺序排列,越往后,其值越大.当然,对于汉字则是按照其全拼拼音排列的,若首字符相同,则比较下一个字符,以此类推. 对于日期时间类型的数据也可以求其最大/最小值,其大小排列就是日期时间的早晚,越早认为其值越小, 原文地址:http://blog.51cto.com/59465168/2324977

hive 中与mysql 中函数同名不同意的方法记录

max 函数 在hive中max函数是一个聚合函数,所以,而且返回值是double ,而且后面必须跟group by ,这个和mysql差异很大 Built-in Aggregate Functions (UDAF) DOUBLEmax(col)Returns the maximum value of the column in the group. mysql 中 Returns the maximum value of expr. MAX() may take a string argume

MySQL 聚合函数

MySQL 聚合函数常用的有五个 SUM COUNT AVG MIN/MAX AVG ([DISTINCT] expr) 返回expr 的平均值.DISTINCT 选项可用于返回expr的不同值的平均值. SELECT gender, AVG(age) FROM student GROUP BY gender; COUNT(expr) 返回SELECT语句检索到的行中非NULL值的数目. SELECT COUNT(*) FROM student; --返回检索行的数目,不论其是否包含 NULL值

Oracle/Mysql/SqlServer函数区别

mysql日期和时间格式转换 Linux scp 使用详解 Oracle/Mysql/SqlServer函数区别 2011-07-01 12:34:36|  分类: Mysql技术 |  标签:mysql  sqlsever  oracle  函数   |举报 |字号大中小 订阅 Sql代码 1.类型转换 --Oracle select to_number('123') from dual; --123; select to_char(33) from dual;  --33; select t

php一些不是很常用的操作mysql的函数

<?php $con=mysql_connect('localhost','root','1234'); echo '<hr>1.mysql_client_encoding<br>'; echo mysql_client_encoding();//返回当前数据库的编码方式 // mysql_data_seek(result, row_number):移动数据内部指针到指定的行:result // 是mysql_query():获取的数据集 //mysql_list_dbs($

UNION ALL和order by 的关系,group by 和字段的关系,以及MAX函数

1.UNION ALL 和 ORDER BY的关系 默认是对 UNION ALL 的结果进行排序 @坚果云附件 UNION ALL 排序问题.xmind - 坚果云 2.GROUP BY 和 ORDER BY的关系 参考:mysql group by 排序问题_闷声发大财 - CSDN 博客 原始数据: 2.1.ORDER BY 默认是对 GROUP BY 的结果进行排序 结果如下:无论根据什么字段进行排序,排序的数据ID都为1.2.表示GROUP BY选取的结果始终是一致的,ORDER BY

SQL MAX() 函数

MAX() 函数 MAX 函数返回一列中的最大值.NULL 值不包括在计算中. SQL MAX() 语法 SELECT MAX(column_name) FROM table_name 注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值. SQL MAX() 实例 我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 Bush 2 2008/11/23 1600 Ca

29.MAX() 函数

MAX() 函数 MAX 函数返回一列中的最大值.NULL 值不包括在计算中. SQL MAX() 语法 SELECT MAX(column_name) FROM table_name 注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值. SQL MAX() 实例 我们拥有下面这个 "Orders" 表: O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 Bush 2 2008/11/23 1600 Ca