MySQL-先排序后分页
当我们需要分页并且数据是要按照一定顺序的话就必须要先排序,然后在分页,那么我们如何操作。
首先我们根据正常的排序查询语句来查询数据,查询数据的接口我们可以看到查询结果是正常按照时间来排序的。
select *
from im_record
order by create_time;
当我们需要使用排序后的数据进行分组,就需要修改SQL语句来对排序后的数据在进行分组,需要注意的是,我们在排序语句必须要增加limit
字段,否则数据是不会变化的,这里对有无添加limit
进行尝试。
未添加limit: 可以看出未添加limit是不会在连表查询内进行排序的,也就不是我们需要的结果
select *
from (select *
from im_record
where is_delete = 0
order by create_time desc) as im
group by im.to_user_id;
添加limit:
select *
from (select *
from im_record
where is_delete = 0
order by create_time desc
limit 9999) as im
group by im.to_user_id;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步