mysql 根据某一字段获取最新一条数据

81

目标

在某个网盘系统内,有张文件操作记录表,记录了文件/文件夹的操作数据
需要获取userid为1的最近20条的操作记录

思路

因为create_time记录的是时间,最新的操作记录,create_time就越大,所以先按resource_id(资源id)分组然后取最大的create_time,
接着join一下取资源id

结果

使用max函数:

  select dor.resource_id
  from operate_record dor join 
  (select max(dor.create_time), dor.operate_id  from dx_operate_record dor where dor.CREATE_BY  =  #{userId} group by dor.resource_id  ) 
  t on dor.operate_id = t.operate_id  order by  dor.CREATE_TIME desc  limit  #{pageSize}

参考

https://blog.csdn.net/freshman2020/article/details/114003915