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);

  

记录pageHelper分页orderby的坑的更多相关文章

  1. springboot mybatis的pagehelper分页

    maven repositary里,分页组件常用的有两个 com.github.pagehelper » pagehelper-spring-boot-starter  com.github.page ...

  2. PageHelper分页插件的使用

    大家好!今天写ssm项目实现分页的时候用到pageHelper分页插件,在使用过程中出现了一些错误,因此写篇随笔记录下整个过程 1.背景:在项目的开发的过程中,为了实现所有的功能. 2.目标:实现分页 ...

  3. Mysql系列八:Mycat和Sharding-jdbc的区别、Mycat分片join、Mycat分页中的坑、Mycat注解、Catlet使用

    一.Mycat和Sharding-jdbc的区别 1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包 2)使用mycat时不需要改代码,而使用sharding-jdbc时 ...

  4. spring boot 整合pagehelper分页插件

    Spring Boot 整合pagehelper分页插件 测试环境: spring boot  版本 2.0.0.M7 mybatis starter 版本  1.3.1 jdk 1.8 ------ ...

  5. pageHelper分页

    引入jar包 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pag ...

  6. SpringBoot入门篇--整合mybatis+generator自动生成代码+druid连接池+PageHelper分页插件

    原文链接 我们这一篇博客讲的是如何整合Springboot和Mybatis框架,然后使用generator自动生成mapper,pojo等文件.然后再使用阿里巴巴提供的开源连接池druid,这个连接池 ...

  7. Spring Boot+Mybatis+Pagehelper分页

    Spring Boot 集成MyBatis和Pagehelper分页插件 mybatis-spring-boot-starter依赖树如下: pom配置 <project xmlns=" ...

  8. PageHelper分页实战(SSM整合)

    步骤一:引入SSM相关的jar包,包列表如下: 步骤二:创建或修改配置文件,配置文件清单如下: applicationContext.xml <?xml version="1.0&qu ...

  9. Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板

    作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...

随机推荐

  1. CSS入门(二)

    一.组合选择器 每个选择器位可以是任意基础选择器或选择器组合 1.群组选择器 可以一次性控制多个选择器 选择器之间用逗号(,)隔开 div,.d1,#div{ color:red; } 2.子代(后代 ...

  2. jenkins 安装网址

    https://wiki.jenkins.io/display/JENKINS/Installing+Jenkins

  3. 自己没有记住的一点小知识(ORM查询相关)

    一.多对多的正反向查询 class Class(models.Model): name = models.CharField(max_length=32,verbose_name="班级名& ...

  4. cf161d 求距离为k的点对(点分治,树形dp)

    点分治裸题,但是用树形dp也能做 /* dp[u][k]表示在u下距离k的点数量 */ #include<bits/stdc++.h> using namespace std; ]; ], ...

  5. Spring Security Filter执行顺序

    1.场景:先走框架过滤器,后走自定义过滤器 @Bean public FilterRegistrationBean resourceFilterRegistration() { FilterRegis ...

  6. Python字典(Dictionary)

    Python中字典与类表类似,也是可变序列,不过与列表不同,他是无序的可变序列,保存的内容是以键 - 值对的形式存放的.类似我们的新华字典,他可以把拼音和汉字关联起来,通过音节表可以快速的找到想要的字 ...

  7. 微信小程序 Video默认横屏

    wxml文件 <video id='myvideo' src='你的视频文件路径'> </video> js文件 onLoad: function (options) { va ...

  8. 论文阅读笔记三十七:Grid R-CNN(CVPR2018)

    论文源址:https://arxiv.org/abs/1811.12030 开源代码:未公开 摘要 本文提出了目标检测网络Grid R-CNN,其基于网格定位机制实现准确的目标检测.传统方法主要基于回 ...

  9. ActiveSync中的http内容组织

    1. POST Request 数据格式 Request-line Request-headers CR/LF Request Body Request-line POST <URI> H ...

  10. 集腋成裘-05-angularJS -初识angular

    私以为angular的最大特点是:只关注数据 1.1 angular之:双向绑定 <!DOCTYPE html> <html ng-app=""> < ...