我有一个MySQL查询的问题。我有以下表格:MySQL数量和显示范围内的所有日期
[id]
[from] DATE (Y-m-d)
[days] INT
[...]
和我有两个PHP变量$start
和$end
。我想有这样的结果,例如:
$start = 2012-19-03
$end = 2012-24-03
$result = array(
[0] => COUNT of rows WHERE '2012-19-03' BETWEEN from AND from + INTERVAL days DAY
[1] => COUNT of rows WHERE '2012-20-03' BETWEEN from AND from + INTERVAL days DAY
[2] => COUNT of rows WHERE '2012-21-03' BETWEEN from AND from + INTERVAL days DAY
[4] => COUNT of rows WHERE '2012-22-03' BETWEEN from AND from + INTERVAL days DAY
[5] => COUNT of rows WHERE '2012-23-03' BETWEEN from AND from + INTERVAL days DAY
[6] => COUNT of rows WHERE '2012-24-03' BETWEEN from AND from + INTERVAL days DAY
}
直到现在我与每一天的查询这样做在一个while循环,但应该有一个更好的办法。我的问题是GROUP BY
,那里的数据不存在的日子。
更详细的例子:
的样本数据:
id, from, days
1, 2012-15-03, 2
2, 2012-15-03, 5
3, 2012-13-03, 20
4, 2012-16-03, 1
期望的结果:
$start = 2012-11-03
$end = 2012-19-03
$result = array(
[0] => 0 (ROWS IN DB WHERE '2012-11-03' BETWEEN from AND from+days -- no match in data),
[1] => 0 (ROWS IN DB WHERE '2012-12-03' BETWEEN from AND from+days -- no match in data),
[2] => 1 (ROWS IN DB WHERE '2012-13-03' BETWEEN from AND from+days -- id #3 matches),
[3] => 1 (and so on),
[4] => 3,
[5] => 4,
[6] => 3,
[7] => 2
)
这样的..
兴小时没有找到一种方法,我希望你能帮我, 问候
所以问题出在哪里,如果你知道之间关键字 – 2012-03-19 05:45:50
得到这种排序阵列的PHP变量$ start和$ end – Feryaz 2012-03-19 05:49:34
之间的天数你可以发布你从数据库中获得的数组还有select sql查询 – 2012-03-19 06:09:43