MySQL-先排序后分页

当我们需要分页并且数据是要按照一定顺序的话就必须要先排序,然后在分页,那么我们如何操作。

首先我们根据正常的排序查询语句来查询数据,查询数据的接口我们可以看到查询结果是正常按照时间来排序的。

select *
from im_record
order by create_time;

image-20221125172316850

当我们需要使用排序后的数据进行分组,就需要修改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;

image-20221125172720094

添加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;

image-20221125172745052

posted @ 2022-11-25 17:30  HeiDaotu  阅读(272)  评论(0编辑  收藏  举报