目录搜索
基础安装ThinkPHP5.1开发规范目录结构配置基础架构路由控制器请求架构总览入口文件URL访问模块设计命名空间容器和依赖注入Facade钩子和行为路由定义变量规则路由地址闭包支持路由参数跨域请求注解路由路由分组MISS路由资源路由快捷路由路由别名路由绑定域名路由URL生成控制器定义前置操作跳转和重定向空操作和空控制器分层控制器资源控制器请求对象输入变量请求类型HTTP头信息伪静态参数绑定请求缓存响应响应输出响应参数重定向数据库模型视图连接数据库查询数据添加数据更新数据删除数据查询表达式链式操作wheretablealiasfieldstrictlimitpageordergrouphavingjoinuniondistinctlockcachecommentfetchSqlforcepartitionfailExceptionsequence聚合查询时间查询高级查询视图查询JSON字段子查询原生查询查询事件事务操作监听SQL存储过程数据集分布式数据库定义新增更新删除查询JSON数据字段获取器修改器自动时间戳只读字段软删除类型转换数据完成查询范围模型输出事件关联一对一关联一对多关联远程一对多多对多关联多态关联关联预载入关联统计关联输出视图渲染视图赋值视图过滤模板引擎模板变量输出使用函数运算符原样输出模板注释模板布局模板继承包含文件输出替换标签库内置标签循环标签比较标签条件判断资源文件加载标签嵌套原生PHP定义标签错误和日志异常处理日志处理调试验证杂项命令行扩展库安全和性能附录调试模式性能调试SQL调试变量调试远程调试验证器验证规则错误信息验证场景路由验证内置规则独立验证静态调用表单令牌缓存SessionCookie多语言分页上传自动生成目录结构创建类库文件生成类库映射文件清除缓存文件生成配置缓存文件生成数据表字段缓存生成路由映射缓存自定义指令验证码图像处理Time数据库迁移工具WorkermanMongoDb单元测试安全建议优化建议助手函数升级指导更新日志
文字

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

$D(O1]H{V_QJJ1_V{0J@M(B.png

聚合方法如果没有数据,默认都是0,聚合查询都可以配合其它查询条件

用法示例

获取用户数:

Db::table('think_user')->count();

实际生成的SQL语句是:

SELECT COUNT(*) AS tp_count FROM `think_user` LIMIT 1

或者根据字段统计:

Db::table('think_user')->count('id');

生成的SQL语句是:

SELECT COUNT(id) AS tp_count FROM `think_user` LIMIT 1

获取用户的最大积分:

Db::table('think_user')->max('score');

生成的SQL语句是:

SELECT MAX(score) AS tp_max FROM `think_user` LIMIT 1

如果你要获取的最大值不是一个数值,可以使用第二个参数关闭强制转换

Db::table('think_user')->max('name',false);

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

Db::table('think_user')->where('score', '>', 0)->min('score');

和max方法一样,min也支持第二个参数用法

Db::table('think_user')->where('score', '>', 0)->min('name',false);

获取用户的平均积分:

Db::table('think_user')->avg('score');

生成的SQL语句是:

SELECT AVG(score) AS tp_avg FROM `think_user` LIMIT 1

统计用户的总成绩:

Db::table('think_user')->where('id',10)->sum('score');

生成的SQL语句是:

SELECT SUM(score) AS tp_sum FROM `think_user` LIMIT 1


上一篇:下一篇: