mysql5.7,order by后再group by不生效问题

1. 子查询sql,查询field_a最近时间的一次记录

select * from (select * from table_a where field_a in ('aaa','bbb','ccc') and field_b is not null order by create_time desc) t group by t.field_a

2. 发现排序未生效。

3. explain 查看执行计划,发现在没有 limit 的情况,会少了一个derived 操作,mysql会认为这时候不需要排序,内部做了优化。

4. 最终生效sql

select * from (select * from table_a where field_a in ('aaa','bbb','ccc') and field_b is not null order by create_time desc limit 100) t group by t.field_a

你可能感兴趣的:(mysql5.7,order by后再group by不生效问题)