php+MYSQL+一次获取n行

标签 php mysql foreach count

我有一个如下所示的数据库:(日期格式为 strtotime)

ID  Date            
1   1338366170000
2   1337761370000
3   1337761370000
4   1337761370000
5   1337156570000
6   1331713370000
7   1331713370000

如您所见,一些条目来自同一日期。我现在想抓取每个日期并计算它发生的频率。

所以最终结果应该是这样的:

Date: 1338366170000
Count: 1

Date: 1337761370000
Count: 3

Date: 1337156570000
Count: 1 

Date: 1331713370000
Count: 2 

我目前这样做是为了获取所有日期并计算每个日期:

首先我抓取所有行:

$stats      = $sql->query("SELECT * FROM stats_clicks");

现在,当我尝试对具有相同日期的条目进行计数时,我认为问题开始了:我遍历所有结果并搜索每个日期并对其进行计数。

foreach($sql->get() as $result){

    //Sum clicks for each date
    $date   = $result["date"];

    $stats  = $sql->query("SELECT * FROM stats_clicks WHERE date = '$date'");
    $count  = count($sql->get());

    echo "Date: $date<br>Count: $count<br><br>";

}

输出是:

Date: 1338366170000
Count: 1

Date: 1337761370000
Count: 3

Date: 1337761370000
Count: 3

Date: 1337761370000
Count: 3

Date: 1337156570000
Count: 1 

Date: 1331713370000
Count: 2 

Date: 1331713370000
Count: 2 

如何避免多次输出每个日期,而是每个日期只输出一次且计数正确?

最佳答案

SELECT `Date`, COUNT(`Date`) as `Count`
FROM stats_clicks
GROUP BY `Date`

结果

Date    Count
1331713370000   2
1337156570000   1
1337761370000   3
1338366170000   1

关于php+MYSQL+一次获取n行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10813108/

相关文章:

php - 在wordpress中下拉框选择后获取子类别

php - 使用PHP获取本地PC中的ODBC数据源列表

php - ImageMagick bash 脚本问题

mysql - 优化大量更新查询

c# - 从 MySQL 连接获取数据并将其显示在 TextBox 上

jquery - 我在 JQuery 中的重命名功能在 Foreach 语句中不起作用?

php - $_SESSION 仅在页面重新加载后读取

php - 使用 PHP exec 调用 MySQL exe 不起作用

javascript - 如何让 foreach 循环在继续之前等待 $http.get 完成?

PHP PDO : Binding value in one foreach loop regarding insert into on duplicate key update