在实际开发中遇到一个有趣的问题,有关数据库order by排序不唯一,导致分页出现重复数据问题。
项目中需要对创建时间进行降序查询,每页显示3条
初始查询:
1 | select * from material WHERE 1=1 and status = 2 order by create_time desc LIMIT 3,3; |
俩张图对比我们可以清楚的看到id24的查询了俩次,我的解决方案进行SQL改写:先通过时间排序再通过Id排序,id是唯一字段
修改后的sql:
初始查询:
1 | select * from material WHERE 1=1 and status = 2 order by create_time desc ,id desc LIMIT 3,3; |
下一页查询:
1 | select * from material WHERE 1=1 and status = 2 order by create_time desc ,id desc LIMIT 6,3; |
- 本文作者: blues
- 本文链接: http://example.com/2021/07/22/sql进行Order-by排序再进行分页limit取值会出现重复显示问题/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!