在MySQL中我有這個疑問:如何填寫缺少的日期範圍內
SELECT COUNT(*) AS `total` , DAYOFYEAR(FROM_UNIXTIME(unixtimeissued)) AS `dayOfYear` , YEAR(FROM_UNIXTIME(unixtimeissued)) AS `year`
FROM flex_information
WHERE unixtimeissued >= 'giventime'
GROUP BY dayOfYear, year
ORDER BY year, dayOfYear
LIMIT 0 , 300
這工作,只是我無法找到一個方法來插入0計數,其中有特定日期沒有條目罰款。即如果'2012年6月13日'沒有條目,我希望它在該日期返回'總'0。
編輯:這個數據將被用於繪製折線圖,所以我將需要0個計數與日期配對,以便成功顯示一個精確的圖表 - 我可能在PHP中填寫零值,但是一個MySQL查詢系統密集程度要低得多。
我發現這個答案:MySQL how to fill missing dates in range?:我現在有一個'數字'表,但一直無法成功地適應我的查詢解決方案。我假設的一些簡寫語法讓我很難理解這些概念。
你是什麼意思插入0計數?如果查詢返回的內容沒有任何內容可以插入 – Woot4Moo 2012-08-02 14:05:47
MySQL是否有CTE或類似的東西?如果是這樣 - 查看這個解決方案http://codecorner.galanter.net/2011/08/29/tsql-filling-missing-date-range/(它是用TSQL方言完成的)。即使它不,我認爲你可以通過使用子查詢來適應解決方案 – 2012-08-02 14:09:15
感謝您的快速響應。 @ Woot4Moo,我已經更新了我的問題,試圖澄清。現在清楚了嗎? – 2012-08-02 14:10:55