場景:
mysql
有時候咱們在網站中要 假模假樣的 作一些簽到功能。讓用戶能夠每天來點一次網站,以增長咱們網站的活躍率。sql
那麼其中一個功能是:ide
統計出連續簽到X天的用戶。而後對他們進行排行或者假模假樣的獎勵函數
計算 相鄰兩行的 日期是否 相差一天就能夠。網站
mysql的函數 datediff(date1,date2)it
返回兩個日期之間的天數 注意是 date1-date2class
select user_name,sign_date,IF(@pre=user_name and DATEDIFF(sign_date,@pre_date)=1,@rownum:=@rownum+1,@rownum:=1),date
@pre:=user_name,@pre_date:=sign_dateselect
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