项目里面的复杂的查询语句需要进行分页,由于需要根据索引检索,且索引数据需要转格式,故查询语句里面包含 cast() 函数。
使用pageHelper的时候,自带的count语句拼接出来的结果就是在原来的语句上添加如下内容
select count(*) from ( your origin sql ) t
但是由于sqlserver 分页需要用到order by,
select count(*) from ( your origin sql ) t 这条sql 里面便包含order by。
sqlserver 子查询不支持order by,报错!!!!
下记给出处理方法,供参考
- 官方方案
自己写count语句替代插件生成的count语句,版本5.0.4以上
官方说明链接 - PageHelper.startPage() 方法不开启count查询,即
PageHelper.startPage(page,size,false);
注:其他的什么使用Top 100 percent 的方法只适用于独立的查询,不适合pagehelper的分页查询,可自测!
版权声明:本文为weixin_45759287原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。