场景:
有时候我们在网站中要 假模假样的 做一些签到功能。让用户可以天天来点一次网站,以增加我们网站的活跃率。
那么其中一个功能是:
统计出连续签到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