mysql 怎么获取最大值的那条记录

mysql 怎么获取最大值的那条记录,第1张

用:select MAX(id) from table limit 0,1

Mysql中数字类型字段可直接使用MAX()函数,使用max函数查询一个字符串类型的字段时,因为字符串类型大小比较是先比较首字符,然后依次往后进行比较

如有数据:10000,9999。使用max查出来的最大值并不是10000,而是9999

解决方法如下:max(id+0)

扩展资料:

注意事项

MAX()函数

1、MAX()函数是求最大值的函数;

eg:查询张三的所有科目中的最高分

SELECT stuName,MAX(score) FROM t_grade WHERE stuName="张三"

2、与 GOUPE BY 关键字一起使用

eg:查询所有学生分数最高的成绩

SELECT stuName,MAX(score) FROM t_grade GROUP BY stuName

MIN()函数

1、MIN()函数是求最小值的函数;

eg:查询张三的所有科目中的最低分

SELECT stuName,MIN(score) FROM t_grade WHERE stuName="张三"

2、与 GOUPE BY 关键字一起使用;

eg:查询所有学生分数最低的成绩

SELECT stuName,MIN(score) FROM t_grade GROUP BY stuName

在mysql中使用group by进行分组后取某一列的最大值,我们可以直接使用MAX()函数来实现,但是如果我们要取最大值对应的ID

那么我们需要取得整行的数据该怎么办?

起初搜寻到的资料是这样的:

首先按照 create_time 倒叙排序,然后分组,那么每个分组中排在最上面的记录就是时间最大的记录

但是结果不是这样的,经过搜集资料,得出需要在排序后边加 limit 10000000000

如果不加的话,数据不会先进行排序,通过 explain 查看执行计划,可以看到没有 limit 的时候,少了一个 DERIVED *** 作。

ELECT * FROM 表 LIMIT 0, 10 LIMIT 接受一个或两个数字参数。 参数必须是一个整数常量。 如果给定两个参数,第一个参数指定第一个返回记录行的偏移量, 第二个参数指定返回记录行的最大数目。 初始记录行的偏移量是 0(而不是 1)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8630661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存