DB中分页问题

从数据查询出一条数据的时候出现的问题:

blob.png

pageNumber要访问第几页,pageSize每页多少条数据,totalPage总页数,totalRow总共有多少条数据。

当从数据库查询出两条数据的时候又是正常的:

blob.png

评论区

JFinal

2016-08-23 15:53

sql 是怎样的? 如果用到 group by 并且 group by 的参数较为复杂,添加一个参数就好,例如: paginate(pn, ps, true, "select...", "from ....", paras),其中第三个参数是 true

基大屌的悲伤

2016-08-23 15:55

@JFinal select a.*,b.id as torderid,b.goodname,b.balename from torders a left join tordergoods b on b.orderid=a.id where 1=1 and a.mid=128 and a.state = 1 GROUP BY(a.id) order by ctime desc 这个是sql语句

JFinal

2016-08-23 15:56

@基大屌的悲伤 果然有 group by,第三个参数添加上 true 就好

基大屌的悲伤

2016-08-23 15:59

@JFinal 加上true解决了问题,是不是有连接查询,用到group by这个就要加上true?

JFinal

2016-08-23 16:03

@基大屌的悲伤 这个参数名就叫 "isGroupBySql",就是专门用来告诉 jfinal 这是一个 group by 的 sql,因为 group by 的分页需要做出额外的处理

基大屌的悲伤

2016-08-23 16:05

JFinal

2016-08-23 16:05

@JFinal 不添加 isGroupBySql 参数时,jfinal 也能兼容绝大部分情况,只有少数情况才会出问题,但仍然建议你,无论什么情况,只要是带有 group by 的 sql,都加上这个 true 参数,保障正确性。这个跟是否是关联查询无关

基大屌的悲伤

2016-08-23 16:11

@JFinal 确实有很小几率出现这个问题,受教了

JFinal

2016-08-23 16:16

其实 jfinal 可以采用非常复杂的正则解决此问题,但代价是解析 sql 的正则对性能影响很大,添加这样一个参数是权衡后更好的方案,多多支持社区发展

热门反馈

扫码入社