CakePHP 中的多重计数

Posted

技术标签:

【中文标题】CakePHP 中的多重计数【英文标题】:Multiple Counts in CakePHP 【发布时间】:2009-08-24 11:21:53 【问题描述】:

我有一个使用 Cakephp 的 PHP 应用程序。我需要提供一个表格,显示该月每一天的特定事件的计数。每个事件都以名称和数据记录在数据库中。为此创建表的最佳方法是什么,我真的需要执行 31 个 SQL 调用来计算每天的事件,还是取出整个月的数据然后在我的应用程序中解析它,或者是否有更好地查找与 cake 一起使用的命令?

【问题讨论】:

【参考方案1】:

您可以对事件进行计数,并GROUP BY 它们发生的日期。

例子:

SELECT eventDate, COUNT() as 'events'
FROM   events
GROUP  BY eventDate
ORDER  BY eventDate ASC

这可能会呈现类似于以下的结果:

2009-08-11 | 23
2009-08-09 | 128
2009-08-06 | 15

如果您将日期和时间存储为 eventDate,则需要使用 substr() 函数来获取仅按日期分组的事件:

SELECT substr(eventDate, 1, 10) as 'date', COUNT() as 'events'
FROM   events
GROUP  BY substr(eventDate, 1, 10)
ORDER  BY eventDate ASC

【讨论】:

以上是关于CakePHP 中的多重计数的主要内容,如果未能解决你的问题,请参考以下文章

如何删除或更改postgresql上的cakephp分页计数查询?

CakePHP 分组和计数

CakePHP 2.9 连接查询返回错误结果

cakephp 多个数据库中的关联 Cakephp 2

cakephp 3 中的控制器未运行

布局中的 CakePHP 动态菜单内容