获取连续签到X天用户列表


近期需要做一个连续签到X天用户列表功能, 一开始没什么头绪,查了下发现有这个函数

数据库的 datediff 函数

select datediff('2019-03-07','2019-02-27')

运行结果是:

datediff('2019-03-07','2019-02-27')
8

数据表结构:

image.png

最终使用语句:

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

Author: Carp Choi
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Carp Choi !
 Previous
coredns 概念原理与使用 coredns 概念原理与使用
WHY ? kuberntes 中的 pod 基于 service 域名解析后,再负载均衡分发到 service 后端的各个 pod 服务中,如果没有 DNS 解析,则无法查到各个服务对应的 service 服务 在 Kubernetes
2020-04-13
Next 
《人月神话》《Man-Month Mythical》读书笔记 《人月神话》《Man-Month Mythical》读书笔记
Brooks法则:向进度落后的项目中增加人手,只会使进度更加落后。(Adding manpower to a late software project makes it later) (#275-276) 软件经理很早就认识到优秀程序
2019-03-01