Possible Duplicate:
What is the most straightforward way to pad empty dates in sql results (on either mysql or perl end)?
在some_table中创建的每个“记录”都有一个“日期”。
some_table:------------------------- id | record | my_date ------------------------- 1 | rec_a | 2012-08-01 2 | rec_b | 2012-08-02 3 | rec_c | 2012-08-02 4 | rec_d | 2012-08-04 5 | rec_e | 2012-08-06 6 | rec_f | 2012-08-06
my_query:
start_date和end_date来自输入SELECT my_date, COUNT(my_date) AS _count FROM some_table WHERE my_date BETWEEN start_date AND end_date GROUP BY DAY (my_date)
数组:while($result = mysql_fetch_assoc($my_query)) { $dataset[] = array($result['my_date'],intval($result['_count'])); } json_encode($dataset);
这将使:["2012-08-01",1] ["2012-08-02",2] ["2012-08-04",4] ["2012-08-06",6]
如何获得无计数的日子的最佳方法是什么?["2012-08-01",1] ["2012-08-02",2] ["2012-08-03",0] <-- ["2012-08-04",4] ["2012-08-05",0] <-- ["2012-08-06",6]
最佳答案
可能最简单的方法是创建一个表,其中包含所有可能的日期。然后,您将从该表中进行选择,并保留对现有表的联接。
可能看起来很hack,但这是一种非常常见的模式,尤其是在数据仓库中。
关于php - 如何获得无计数的日子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12165127/