在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计数的方法。即如果没有“6/13/2012”的条目,我希望它在该日期返回0的“总数”。
编辑:此数据将用于绘制折线图,因此我需要0个与日期配对的计数才能成功显示准确的图表 - 我可以在PHP中填写零值但MySQL查询的系统密集程度要低得多。
我找到了这个答案:MySQL how to fill missing dates in range?:我现在有一个'数字'表,但无法成功地使解决方案适应我的查询。我假设的一些简写语法使我很难理解这些概念。
答案 0 :(得分:0)
通过执行上述选择,您将确切知道何时找到零结果。应该发生的所有事情都是范围的比较。例如,如果您获得以下记录:
ID DATE
1 JUN first
2 JUN second
3 JUN fifth
4 JUN sixth
很明显,JUN 3rd和JUN 4th没有条目,所以默认情况下它们将为零。应该可以通过函数找到这些值的范围。
更新
如果架构被修改,那么你就可以解决这个问题:
ID, DATE, COUNT
通过跟踪数据库中的计数,可以随时获得该数字。应该注意的是,如果要发生许多更新,随着表的增长,该过程将变得非常耗时。