mysql 正常的逻辑  select * from table group by a order by b desc 会默认  先分组再排序

但是实际的开发过程中难免会遇到先排序 后分组的情况

这个时候 就要想其他的方法

1 mysql 5.7 以下

select * from (select * from table order by b) group a

2 mysql 5.7以上 包括5.7

由于MySql 5.7对子查询进行了优化 可上面的语句 结果依然是先分组 再排序的结果

可做 如下修改

select * from (select * from table order by b limit 9999) group a

添加完limit 后就可以实现先排序后分组

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐