SQL查询以计算每天的订单续

时间:2018-10-13 13:09:59

标签: php mysql sql json

有一张桌子:

order_id | time_order
1 | 2018-10-10 12:22:05
2 | 2018-10-11 05:22:05
4 | 2018-10-12 07:22:05
5 | 2018-10-12 15:25:05
...

我需要计算时间间隔中每一天的订单计数,并生成类似$ str ='1、1、2、0 ...'的字符串。如果几天没有订单-0。

尝试这样查询:

    $query = $mysqli->query("SELECT COUNT(*) FROM orders WHERE DATE(time_order) >= DATE(NOW()) - INTERVAL 7 DAY GROUP BY time_order");
    while( $row = mysqli_fetch_row($query) )
{
    $str .= ','.json_encode($row,true);
}

但是结果是1,1,1,1,1,1,1,1,1,1,1,1,1,1 ...

请告知如何正确查询?

感谢!

1 个答案:

答案 0 :(得分:1)

我想你想要

SELECT DATE(time_order), COUNT(*)
FROM orders
WHERE DATE(time_order) >= DATE(NOW()) - INTERVAL 7 DAY
GROUP BY DATE(time_order);

也就是说,您的版本正在输出每个time_order的日期。但是,GROUP BY包含时间,因此您将获得每个日期/时间的一行。