关于PageHelper帮你做count的坑

196 阅读1分钟

PageHelper帮你拼的统计count的语句select count(0) from (你的语句) tmp_count 正常情况下,会把你语句中的order by部分去掉,加快sql查询速度,统计count不需要order by 但是有时order by部分会去不掉,原因有几个 1、你的sql中的字段用的是sql的关键字,在navicat中会变成蓝色的那种,比如enable,code,name等。所以不要用sql关键字做字段,已经用了的就加引号,例如`enable`,`code`,`name`。 2、你的sql中使用了if函数,这种情况只有自定义count,你的查询id就用查询的id_COUNT,如下

<select id="selectBySearch" resultMap="selectSkuStockListMap">
    你的查询sql
</select>

<select id="selectBySearch_COUNT" resultType="java.lang.Long">
  select count(0) from (你的查询sql) tmp
</select>