場景案例:獲取連續簽到X天用戶列表

場景:
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

相關文章
相關標籤/搜索