group by 与 order by 同时使用后者不生效

mac2024-06-05  52

group by 与 order by 同时使用后者不生效

首先查看版本(出问题的是5.7) 这里MySQL的版本是 有一张表 我想查询出每一个人最近的一次成绩 首先就是会想到分组

SELECT * FROM `student` GROUP BY NAME;

但是这里很明显只是时间最早的分组了 然后进行改进

SELECT * FROM `student` GROUP BY NAME ORDER BY create_date DESC

发现还是没有生效 查询资料有人说必须是group by的字段也要在order by 中出现,结果还是不行 于是我想使用子查询进行获取,先进行降序排列,再group by

SELECT * FROM ( SELECT * FROM `student` ORDER BY create_date DESC ) t GROUP BY t. NAME

发现成功了 但是在mysql版本比较靠后的时候(出问题的测试的是5.7)还是不行,网上查询有人说是加上limit

SELECT * FROM ( SELECT * FROM `student` ORDER BY create_date DESC limit 10000000000 ) t GROUP BY t. NAME

所以不行的小伙伴试试在后面加上limit ,至于为什么后面跟的数据那么大,这是因为当要分组的数量超过这个数量是会出错的

最新回复(0)