欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 编程语言 > php >内容正文

php

php查询每天的数据进行汇总,关于php:如何在一年内每天只使用一个查询来获取数据?... -ag凯发k8国际

发布时间:2024/10/8 php 0 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 php查询每天的数据进行汇总,关于php:如何在一年内每天只使用一个查询来获取数据?... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

我希望在一年内每天都得到数据,但是我必须每天使用365个查询,例如:

for ($i = 0; $i<365; $i ){

$end_day = ...; // the end time of each day

$start_day = ...; // the start time of each day

$query = select count(*)....where created < $end_day and created > $start_day

}

我认为我目前的ag凯发k8国际的解决方案使系统非常缓慢。有没有办法只使用一个查询?

假设您创建的列是日期时间或时间戳,并且存储的数据比一天更精确:

选择计数(*)…按年(创建)、月(创建)、日(创建)分组

count是一个聚合函数,将应用于每个组,即每个组有一行,该行将具有该组中的记录数。因为我们每天都要创建一个组,所以这是您需要的数据。

您不能只按天分组(已创建),因为天返回月份的日期,所以我们还需要输入月份和年份以确保日期是离散的。

您可能希望有一个where created>$start和created

参考文献:

mysql查询组(按天/月/年)

http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html

您可以使用group by子句。http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html

如果日期中有时间,则必须对其进行格式化,才能只获取日期(http://dev.mysql.com/doc/refman/5.1/en/date and time functions.html function诳date-format)

select count(*), created from my_table group by created

如果它已经是日期时间列:

select count(*),date(created) as d ..... group by d;

如果它存储为unix时间戳:

select count(*),date(from_unixtime(created)) as d ..... group by d;

基本上,您可以使用mysql日期和时间函数来格式化列,这样您就可以从中得到一个日期,然后按这些日期分组,以获得每个日期的计数。

总结

以上是ag凯发k8国际为你收集整理的php查询每天的数据进行汇总,关于php:如何在一年内每天只使用一个查询来获取数据?...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

网站地图