SELECT time,count(*) as count FROM share WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY)<DATE(time) GROUP BY time
像这样,查出近七天的数据了,但是中间没有6和7号的,我要怎么写可以把6号7号的补充为0
5 回答
神不在的星期二
TA贡献1963条经验 获得超6个赞
我每次做这种是 先PHP生成本周数据 值都为0
再查询数据库 再合并
主要就是range
+ array_fill
+ array_combine
之后再合并或者循环替换值
$end_time = strtotime(date("Y-m-d"));
$begin_time = strtotime(date("Y-m-d", strtotime("-1 week +1 day", $end_time)));
$keys = array_map(function ($time) {
return date("Y-m-d", $time);
}, range($begin_time, $end_time, 24 * 3600));
$initData = array_combine($keys, array_fill(0, count($keys), 0));
我觉得最好的方式应该是添加一个数字辅助表连查 虽然我不会用...
PS:这样写真的挺麻烦的, 做统计图表的时候又需要这些值 暂时没找到简单点的方法
- 5 回答
- 0 关注
- 2933 浏览
添加回答
举报
0/150
提交
取消