目前有个需求,用户需要连续6个月,每月订单数量大于或等同于60单以上,用户的身份会升级,php mysql 应该怎样实现啊?

大肚晓东 2016-08-27 08:12:18
目前有个需求,用户需要连续6个月,每月订单数量大于或等同于60单以上,用户的身份会升级,php mysql 应该怎样实现啊
...全文
402 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuntian001 2016-08-28
  • 打赏
  • 举报
回复
order表
user 表
yuntian001 2016-08-28
  • 打赏
  • 举报
回复
mysql 建立一个事件,事件的内容为每月订单数量大于或等同于60单以上,用户的身份升级,触发条件为每一个月触发一次
代码如下(若event已启用前两步可跳过):
1.检查event功能
show variables like '%sche%';
2.启动event功能
set global event_scheduler =1;
3.确定起用event功能后,执行下面的建立event:(开始时间为2016-08-01 00:00:00每1个月执行一次,任务的操作主体是update那部分)
create EVENT my_stat_event
ON SCHEDULE
EVERY 1 MONTH
STARTS concat('2016-08-01 00:00:00')
on completion preserve ENABLE
do
begin
UPDATE `user` SET vip=(vip+1) WHERE id in
(SELECT user_id FROM `order` WHERE
FROM_UNIXTIME(pay_time,'%Y%m')=DATE_FORMAT(NOW(), '%Y%m')
GROUP BY user_id HAVING COUNT(user_id)>=60);
end;
user表和order表的结构如图
xuzuning 2016-08-27
  • 打赏
  • 举报
回复
问题太抽象! 每月订单数量大于或等同于60单以上 select 用户, 月份, count(*) as 数量 from 表 group by 用户, 月份 havnig 数量>=60 用 临时表保存 或 创建视图(view),命名为 结果 连续6个月 select *, (select count(*) from 结果 where 用户=t.用户 and 月份>=t.月份 and 月份+6 < t.月份) as 计数 from 结果 t havnig 计数>=6

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧