场景:

有时候我们在网站中要 假模假样的 做一些签到功能。让用户可以天天来点一次网站,以增加我们网站的活跃率。


那么其中一个功能是:

统计出连续签到X天的用户。然后对他们进行排行或者假模假样的奖励


计算 相邻两行的 日期是否 相差一天就可以。


mysql的函数 datediff(date1,date2)


返回两个日期之间的天数 注意是 date1-date2



select user_name,sign_date,IF(@pre=user_name and DATEDIFF(sign_date,@pre_date)=1,@rownum:=@rownum+1,@rownum:=1),

 

@pre:=user_name,@pre_date:=sign_date

 from (

select user_name,sign_date from user_sign

GROUP BY user_name,sign_date ORDER BY user_name   ,sign_date  ) a ,(select @pre:='',@rownum:=0,@pre_date:='' ) b