网上有很多group by + max() 连用的方法来查询在 5.7版本中是不行的
max字段和其他的字段数据是不匹配的
错误示例1:
mysql> select id,name,max(age),class from test group by class;
错误示例2:
使用子查询 发现出来的数据也不是最新的一条而是随机的取了一条
select *
from (select *
from fire_plan_img
where fk_room_id = 'xxx'
order by create_time desc) as a
group by a.fk_room_id;
查询资料后发现5.7版本对order by做了优化所以查出来结果就不对
正确使用 需要在order by的时候添加limit查询出来的数据就是正确的了(有点妥协的感觉)
select *
from (select *
from fire_plan_img
where fk_room_id = 'xxx'
order by create_time desc limit 10000) as a
group by a.fk_room_id;