场景简介
1、使用PageHelper进行分页查询
2、最终构建PageInfo对象时,total与实际数据量不符
代码判断
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3ceb56480bd04ffc9c3bc6bdcd654b07.png)
异常情况
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d742bdacd35249d190e464c0788015fa.png)
排查
通过对比count()查询的SQL与查询记录的SQL,发现是PageHelper分页查询时省去了order by排序导致
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/1606f678af7f4e399c4d601c95cc6b39.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7685bf140d9941ab896c79c28d82478f.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/50c78eea32e44dab85f88ff0dd6a759c.png)
由于省去了order by,会导致WHERE 1 = 1 AND processStatus = 0
这个条件所筛选出的结果出现误差
原因
PageHelper分页查询时会自动过滤order by
当查出来数据条数为0的时候,则不会继续向下执行完整的sql
解决
在order by前加上/*keep orderby*/
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d111d5092948469d92e459b36f74c331.png)