> 백엔드 개발 > PHP 튜토리얼 > mysql 怎么统计七天内的订单,和每日的订单啊?

mysql 怎么统计七天内的订单,和每日的订单啊?

WBOY
풀어 주다: 2016-06-06 20:11:54
원래의
2123명이 탐색했습니다.

我的订单表使用的create_time时间戳来表示下单时间的,如果取当日订单好计算,但是如果取七天内的订单呢?

如果我想要得到七天内的每一天的订单数量又该怎么计算呢?真是郁闷,希望大神解答下哈,谢谢了。

回复内容:

我的订单表使用的create_time时间戳来表示下单时间的,如果取当日订单好计算,但是如果取七天内的订单呢?

如果我想要得到七天内的每一天的订单数量又该怎么计算呢?真是郁闷,希望大神解答下哈,谢谢了。

七天内的订单:

<code>SELECT * FROM t_order  WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) </code>
로그인 후 복사

七天内每天的订单数量,先用where条件查出七天内的订单,再用group by 对每天进行分组就行了:

<code>SELECT DATE(create_time) createtime,COUNT(*) FROM t_order  WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) </code>
로그인 후 복사

循环取肯定不好,最起码不是最好的。

稍微进步点的:一下子取7天的,然后在代码中分割,代码中分割数组还是很快的。

如果数据量很大跑数组不现实,那就sql语句吧,一次性取出来也是可以的。

等高手展示sql。

你也可以将条件设置DATEDIFF(CURDATE(), create_time)

你要是让别人写,起码得告诉别人日期字段,销量字段等等是什么是吧

你要是问的话,那就只能用条件where了..

你可以在程序中先计算出一个日期,如果 strtotime(date('Y-m-d 00:00:00', strtotime('-7 days')) 得到7天前那天0点的时间戳,然后去where不就行了吗。

不建议用 MySQL 做统计,可以在每次生成一个订单时,把订单放到 redis 中
方案可以是每天一个集合.把每天的订单号都放到这个集合里
别管怎么统计,都很方便,比如统计某一天的订单,直接获取那天集合中的订单数据,不用走 MySQL

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿