数据库的遍历和分页

阅读 58

2021-09-28

  • 根据更新时间遍历
select * from table where id > #{id} and update_time >= #{startDate} order by id limit #{limit}

Date now = new Date();
for (List<PO> pos = dao.selectWithLimit(0, now, 100);
     CollectionUtils.isNotEmpty(pos);
     pos = dao.selectWithLimit(pos.get(pos.size() - 1).getId(), now, 100)) {
  // 逻辑处理
}
  • 根据创建时间分页,根据时间和id排序,否则相同的create_time顺序是不确定的
  • 分页总数据小,达不到万级别就老老实实limit offset lenth语法吧
select * from table  order by created_time, id limit #{offset}, #{pageSize}
  • 这种方法没有办法直接根据页码跳转,只能一页一页往下翻,适合大表,分页总数据过万的场景
select * from table where create_time &gt; #{preCreateTs} or (create_time = #{preCreateTs} and id &gt; #{preId}) order by create_time, id limit #{limit}

精彩评论(0)

0 0 举报