首页 > PHP资讯 > PHP培训技术 > ThinkPHP统计查询

ThinkPHP统计查询

PHP培训技术
统计查询

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

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

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

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

例子:




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

  7. $this->assign('userCount', $userCount);
  8. $this->display();
  9. }

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




  1. SELECT COUNT(*) AS tp_count FROM user LIMIT 1

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

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

共有用户 {$userCount}
人。

max()

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

统计用户最大积分例子:




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

实际执行的 SQL 为:




  1. SELECT MAX(score) AS tp_max FROM user LIMIT 1

min()

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

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




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

实际执行的 SQL 为:




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

avg()

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

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




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

实际执行的 SQL 为:




  1. SELECT AVG(score) AS tp_avg FROM user LIMIT 1

sum()

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

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




  1. $sumScore = $Dao->order('score DESC')->limit('10')->avg('score');

实际执行的 SQL 为:




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

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

PHP培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持37不支持0