pageHelper的count查询会过滤查询sql中的order by条件!

pageHelper分页功能很强大,如果开启count统计方法,在你执行查询条件时会再执行一条selet count(*) from 的sql,

这个结果就是pageinfo属性中total的值。但是我在项目中遇到一个坑(total总数和自己sql查出的结果不一致),首先看我的sql:

SELECT t2.* FROM (SELECT t.* FROM qf_invoice t WHERE t.status =5 and t.isopen !=5 and t.remark ='查无此票'
GROUP BY t.invoice_id )t2 LEFT JOIN (select t1.create_time,t1.invoice_id from
(SELECT z.* from qf_invoice_log z ORDER BY z.create_time asc ) t1 where t1.type =102 GROUP BY t1.invoice_id)t3 ON t2.invoice_id = t3.invoice_id where 1=1 and epid = '001010001'
and t3.create_time <= DATE_SUB(NOW(), INTERVAL 3 day) ORDER BY t2.input_time DESC ;

  

  这是我查询数据的sql

初略的看感觉没什么问题啊,这也是我为什么在这个问题上浪费了太多的时间。

最后才发现count的sql中“order by  desc”的条件全没有了,因为我其中一条sql需要根据时间倒序作为条件,

这样导致我count的值其实是不准确的,但是list的值又是正确的。
        PageHelper.startPage(page, pageSize);
List<Map> oldMap = invoiceMapper.reviewInvoiceList(paramMap);

  

 这里我查出的分页数据的size为0,但是total值却变成2了- -

最后将count的方法重写一下就可以了,这样就不会出现total总数不正确的状况。

/**
* pageHelper分页查询count时会默认过滤掉sql中的orderby条件。
*/
PageHelper.startPage(page, pageSize,false);
List<Map> oldMap = invoiceMapper.reviewInvoiceList(paramMap);
long oldMapTotal = invoiceMapper.reviewInvoiceList_COUNT(paramMap);

  

最新文章

  1. 常用的14种HTTP状态码速查手册
  2. 【java基础学习】-【泛型】
  3. 使用WCF的Trace与Message Log功能
  4. HTML label标签的一点理解
  5. VFP调用SOAPTOOLKIT 低级API
  6. Fix a corrupted user profile
  7. Codeforces Gym 100425H H - Football Bets 构造
  8. Advanced Configuration Tricks
  9. javascript 原生 cookie 处理
  10. 【Espruino】NO.15 nRF24L01+无线收发器
  11. JavaScript Date对象介绍
  12. :after和:before中的content(放入icon)
  13. JS string 常用方法总结
  14. (二叉树 DFS 递归) leetcode 101. Symmetric Tree
  15. ubuntu 18.04输入法问题
  16. Chrome_调试js出现Uncaught SyntaxError: Unexpected identifier
  17. idea 中解决maven 包冲突的问题(maven helper)
  18. How to configure ESXi to boot via Software iSCSI?
  19. (转)SQL知识_SQL Case when 的使用方法
  20. iOS UI-UIPickerView(拾取器)、UIWebView(网页视图)和传值方式

热门文章

  1. swoole深入学习 2. tcp Server和tcp Client
  2. LONG数据类型转换为VARCHAR2并相互转换
  3. 公历和农历转换的JS代码(车)
  4. Vue.extend和Vue.component的联系与差异
  5. HTML&amp;javaSkcript&amp;CSS&amp;jQuery&amp;ajax(七)
  6. noip 2018游记
  7. 简单的做一个图片上传预览(web前端)
  8. 检查URL的可用性脚本
  9. jmeter BeanShell实例-----两个变量之间的断言对比
  10. echarts + timeline 显示多个options