php查询每天的数据进行汇总,关于php:如何在一年内每天只使用一个查询来获取数据?...
我希望在一年內(nèi)每天都得到數(shù)據(jù),但是我必須每天使用365個(gè)查詢,例如:
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
}
我認(rèn)為我目前的解決方案使系統(tǒng)非常緩慢。有沒有辦法只使用一個(gè)查詢?
假設(shè)您創(chuàng)建的列是日期時(shí)間或時(shí)間戳,并且存儲(chǔ)的數(shù)據(jù)比一天更精確:
選擇計(jì)數(shù)(*)…按年(創(chuàng)建)、月(創(chuàng)建)、日(創(chuàng)建)分組
Count是一個(gè)聚合函數(shù),將應(yīng)用于每個(gè)組,即每個(gè)組有一行,該行將具有該組中的記錄數(shù)。因?yàn)槲覀兠刻於家獎(jiǎng)?chuàng)建一個(gè)組,所以這是您需要的數(shù)據(jù)。
您不能只按天分組(已創(chuàng)建),因?yàn)樘旆祷卦路莸娜掌?#xff0c;所以我們還需要輸入月份和年份以確保日期是離散的。
您可能希望有一個(gè)where created>$start和created
參考文獻(xiàn):
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
如果日期中有時(shí)間,則必須對(duì)其進(jìn)行格式化,才能只獲取日期(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
如果它已經(jīng)是日期時(shí)間列:
SELECT COUNT(*),DATE(created) as d ..... GROUP BY d;
如果它存儲(chǔ)為UNIX時(shí)間戳:
SELECT COUNT(*),DATE(FROM_UNIXTIME(created)) as d ..... GROUP BY d;
基本上,您可以使用mysql日期和時(shí)間函數(shù)來格式化列,這樣您就可以從中得到一個(gè)日期,然后按這些日期分組,以獲得每個(gè)日期的計(jì)數(shù)。
總結(jié)
以上是生活随笔為你收集整理的php查询每天的数据进行汇总,关于php:如何在一年内每天只使用一个查询来获取数据?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php解决链接 amp,php处理替换链
- 下一篇: php文件改写nodejs,node.j