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

解决方案 »

  1.   

    问题太抽象!每月订单数量大于或等同于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
      

  2.   

    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表的结构如图
      

  3.   

    order表
    user 表