文档章节

ThinkPHP 统计查询

ywppengpeng
 ywppengpeng
发布于 2016/11/21 13:39
字数 527
阅读 15
收藏 1

统计查询

在应用中我们经常会用到一些统计数据,例如当前所有(或者满足某些条件)的用户数、所有用户的最大积分、学生的平均成绩等等,ThinkPHP 为这些统计操作提供了一系列的内置方法:

  1. count():统计数据行数
  2. max():统计某个字段最大数据
  3. min():统计某个字段最小数据
  4. avg():统计某个字段平均数据
  5. sum():统计某个字段数据之和

上述统计查询方法都是独立的方法且支持连贯操作。

count()

count() 方法用于统计数据行数。

例子:

public function read(){
    $Dao = M('User');
    // 获取用户数:
    $userCount = $Dao->count();
    // 添加条件:
    $userCount2 = $Dao->where('uid > 10')->count();

    $this->assign('userCount', $userCount);
    $this->display();
}

上例中,两个查询语句实际执行的 SQL 为:

SELECT COUNT(*) AS tp_count FROM user LIMIT 1 
SELECT COUNT(*) AS tp_count FROM user WHERE uid > 10 LIMIT 1

可以在模板中直接输出得到的统计数据:

共有用户 {$userCount} 人。

max()

max() 方法用于统计某个字段最大数据。

统计用户最大积分例子:

$maxScore = $Dao->max('score');

实际执行的 SQL 为:

SELECT MAX(score) AS tp_max FROM user LIMIT 1

min()

min() 统计某个字段最小数据。

获取积分大于 0 的用户的最小积分例子:

$minScore = $Dao->where('score>0')->min('score');

实际执行的 SQL 为:

实际执行SQL:SELECT MIN(score) AS tp_min FROM user WHERE score>0 LIMIT 1

avg()

avg() 统计某个字段平均数据。

获取用户的平均积分例子:

$avgScore = $Dao->avg('score');

实际执行的 SQL 为:

SELECT AVG(score) AS tp_avg FROM user LIMIT 1

sum()

sum() 统计某个字段数据之和。

统计积分排名前 10 名用户的积分之和:

$sumScore = $Dao->order('score DESC')->limit('10')->sum('score');

实际执行的 SQL 为:

SELECT SUM(score) AS tp_sum FROM user ORDER BY score DESC LIMIT 10

所有的统计查询如 select() 方法一样。均支持连贯操作的使用,根据实际情况添加不同的查询条件。

参考阅读

  1. MySQL 统计查询》系列教程
  2. ThinkPHP Where 条件
  3. ThinkPHP 连贯操作

© 著作权归作者所有

共有 人打赏支持
上一篇: ThinkPHP 定位查询
下一篇: ThinkPHP 区间查询
ywppengpeng
粉丝 5
博文 63
码字总数 32377
作品 0
西安
程序员
私信 提问

暂无文章

OSChina 周二乱弹 —— 以后我偷小鱼干养你

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @庞巴哥 :只有这节奏瞬间变得轻松。。。。。。。。。分享Talking Eyes的单曲《In the sun (Extended Version)》: 《In the sun (Extended Ve...

小小编辑
58分钟前
2
0
多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
10
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
9
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部