目录
- 场景简介
- 代码判断
- 异常情况
- 排查
- 原因
- 解决
场景简介
1、使用PageHelper进行分页查询
2、最终构建PageInfo对象时,total与实际数据量不符
代码判断
异常情况
排查
通过对比count()查询的SQL与查询记录的SQL,发现是PageHelper分页查询时省去了order by排序导致
由于省去了order by,会导致WHERE 1 = 1 AND processStatus = 0
这个条件所筛选出的结果出现误差
原因
PageHelper分页查询时会自动过滤order by
当查出来数据条数为0的时候,则不会继续向下执行完整的sql
解决
在order by前加上/*keep orderby*/