thinkphp中分页paginate和group by一起使用时 总记录数和分页代码异常

tp中使用paginate时会使用Db里面的count函数来统计数据总行数。

thinkphp中分页paginate和group by一起使用时 总记录数和分页代码异常

count函数则会使用count(当前查询的所有字段)  limit 1 进行查询

thinkphp中分页paginate和group by一起使用时 总记录数和分页代码异常

当没使用group by时查询正常,当使用了group by时count统计的是分组后的每行的数量

然后limit 1返回第一行的统计值 所以会出现总行数不对的情况

解决办法

原语句

$list=Db::name(‘sms_log’)->field(‘mobile’)->group(‘mobile’)->paginate(10);//此时总页数和分页的html异常

修改后

$buildSql=Db::name(‘sms_log’)->field(‘mobile’)->group(‘mobile’)->buildSql();

$list=Db::table($buildSql)->alias(‘bs’)->paginate(10);//总页数和分页的html正确.

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-12
  • 2021-11-23
  • 2021-08-15
相关资源
相似解决方案