新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
mysql主键最大值在mysql中int类型占四个字节,有符号书的话,最大值就(2^31)-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 操作。