Php MySQL统计并显示范围内的所有日期
我对MySQL查询有问题。我有下表: [id] [自]日期Y-m-d [天]整数 [...] 我有两个PHP变量$start和$end。我想得到这个结果,例如: $start=2012-19-03 $end=2012-24-03 $result=数组 [0]=>从开始到开始之间的“2012-19-03”行数+间隔天数 [1] =>从开始到开始之间的“2012-20-03”行数+间隔天数 [2] =>从开始到开始之间的“2012-21-03”行数+间隔天数 [4] =>从开始到开始之间的“2012-22-03”行数+间隔天数 [5] =>从和从之间的“2012-23-03”行数+间隔天数 [6] =>从开始到开始之间的“2012-24-03”行数+间隔天数 } 到目前为止,我每天都在做一个while循环查询,但应该有更好的方法。我的问题是分组方式,其中的日期不存在于数据中 更详细的示例: 样本数据: id,从,天 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=数组 [0]=>0行(以DB为单位),其中“2012-11-03”介于起始日期和起始日期+天之间-数据不匹配, [1] =>0行(以DB为单位),其中“2012-12-03”介于起始日期和起始日期+天之间-数据不匹配, [2] =>数据库中的1行,其中'2012-13-03'介于起始日期和起始日期+天数之间-id 3匹配, [3] =>1等等, [4] => 3, [5] => 4, [6] => 3, [7] => 2 像这样 我希望你能帮助我,Php MySQL统计并显示范围内的所有日期,php,mysql,datetime,between,date-range,Php,Mysql,Datetime,Between,Date Range,我对MySQL查询有问题。我有下表: [id] [自]日期Y-m-d [天]整数 [...] 我有两个PHP变量$start和$end。我想得到这个结果,例如: $start=2012-19-03 $end=2012-24-03 $result=数组 [0]=>从开始到开始之间的“2012-19-03”行数+间隔天数 [1] =>从开始到开始之间的“2012-20-03”行数+间隔天数 [2] =>从开始到开始之间的“2012-21-03”行数+间隔天数 [4] =>从开始到开始之间的“2012
你好我不确定你到底问了什么 但似乎您可以使用sum和if/else以及group by来实现: 如下图所示:
select sum(if( '2012-19-03' BETWEEN `from` AND date_Add(`from` , INTERVAL days DAY)),1,0)) as firstdaycount,
sum(if( '2012-20-03' BETWEEN `from` AND date_Add(`from` , INTERVAL days DAY)),1,0)) as secondaycount,
..
....
.....
......
.....
where [...]
Group By ...
如果您需要进一步帮助,请告诉我。试试以下方法:
SELECT `from`, COUNT(*) TotalRows
FROM tableName
WHERE `from` <= date('$start') AND `from` >= date('$end')
GROUP BY `from`
ORDER BY `from`
那么,如果您知道between关键字,那么问题出在哪里呢?要在PHP变量$start和$end之间按天对这种数组进行排序和分组,您可以发布从数据库中获取的数组吗?还有select sql查询我没有查询,我要求one@Feryaz:?这意味着我需要在循环中构建查询,没有更灵活的吗?$start和$end变量并不总是相同的,也不总是有相同的天数。请尝试@johntotetwoo solution。不完全是你想要的吗?我不想让它们按from排序,它们应该按PHP变量的天数排序。好的,那么你说的PHP变量的天数是什么意思?你能再详细说明一下吗?谢谢..如果$start是'2012-19-03'而$end是'2012-20-03'。数组的第一个元素的行数应为'2012-19-03'介于from和from+INTERVAL days之间,第二个元素的行数应为'2012-20-03'介于from和from+INTERVAL days之间。这意味着它可以在$start和$end之间的天数内获得订单。通过从中删除订单,它是否满足您的要求?错误。它不考虑起始日和起始日+间隔日部分。