select a.* from (select * from TABLE order by create_time desc) a group by a.user_id
这里查询的是USER_ID相同的最新一条数据
注:
在mysql5.7以及之后的版本,如果GROUP BY的子查询中包含ORDER BY,但是 GROUP BY 不与 LIMIT 配合使用,ORDER BY会被忽略掉,所以子查询在 GROUP BY 时排序不会生效
使用如下SQL:
若主键随排序字段自增 select e.* from TABLE e where e.id in (select max(id) from TABLE group by user_id
若非自增,第一版的子查询加limit
select a.* from (select * from TABLE order by create_time desc limit 999999) a group by a.user_id