thinkphp中分页paginate和group by一起使用时
总查询数量不正确
原查询语句
$buildSql = $entity->order($orderStr)
->group('`from`,`symbol`')
->field('id,from,symbol,to,timestamp')
->distinct(true)
->paginate(15);
修改后:
//修改后语句
$buildSql = $entity->order($orderStr)
->group('`from`,`symbol`')
->field('id,from,symbol,to,timestamp')
->distinct(true)
->buildSql();
//查询分页后不需要进行数据处理的话
$list=Db::table($buildSql)->alias('aa')->paginate(15);
//查询分页后并进行数据处理 use($where) 为参数条件
$list=Db::table($buildSql)->alias('aa')->paginate(15)->each(function($item, $key) use($where){
$item['bet_num'] = db('name')->where('from',$item['from'])->where($where)->count();
$item['timestamp'] = date('Y-m-d',$item['timestamp']);
return $item;
});
网友评论