想在使用thinkphp3.2开发的系统中使用分组查询数据库表并且实现分页怎么办?在一个需要维护的站点需要这个操作,解决案例如下。你也可以使用其他办法解决分组问题。仅供遇到此问题的朋友们参考。通过data_id分组,在count统计中使用distinct(data_id),才能统计出正确的分组记录。
想在使用thinkphp3.2开发的系统中使用分组查询数据库表并且实现分页怎么办?
在一个需要维护的站点需要这个操作,解决案例如下。
你也可以使用其他办法解决分组问题。
仅供遇到此问题的朋友们参考。
通过user_id分组,在count统计中使用distinct(user_id),才能统计出正确的分组记录。
统计学生的总成绩,使用sum(score) as scores,scores为score字段别名。
查询中未使用where进行条件筛选。
$page = 1;
$pageSize = 15;
$lists = M('course','std_','DB_COURSE')
->field('id,user_id,create_time,update_time,sum(score) as scores')
->group('user_id')
->order('id desc')
->page($page)
->limit($pageSize)
->select();
$count = M('course','std_','DB_COURSE')
->count('distinct(user_id)');
var_dump($lists);
var_dump($count);
打印看下效果
array(3) {
[0]=>
array(5) {
["id"]=>
string(2) "26"
["user_id"]=>
string(2) "20"
["create_time"]=>
string(10) "1575542486"
["update_time"]=>
string(10) "1575542486"
["scores"]=>
string(5) "707.0"
}
[1]=>
array(5) {
["id"]=>
string(2) "18"
["user_id"]=>
string(2) "50"
["create_time"]=>
string(10) "1575542486"
["update_time"]=>
string(10) "1575542486"
["scores"]=>
string(5) "722.0"
}
[2]=>
array(5) {
["id"]=>
string(2) "10"
["user_id"]=>
string(3) "100"
["create_time"]=>
string(10) "1575542486"
["update_time"]=>
string(10) "1575542486"
["scores"]=>
string(5) "754.0"
}
}
string(1) "3"
转载注明:
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论