新增用户登陆日志表(id、user_id、login_time、login_date)
用户表新增连续登陆天数字段(continuous_days);
用户每次登陆往登陆日志表insert记录,并且查看昨天是否有登陆记录,如果昨天登陆记录大于0,则连续登陆天数+1,否则将连续登陆天数置为0;
sql语句:select * from user where continuous_days >5
mysql如何查询两个日期之间最大的连续登录天数你的日期字段存储类型是datetime吗,那就直接可以比较大小 比如去2014-10-28(时分秒省略)这一天的时间段 `date_time` >'2014-10-27 23:59:59' and `date_time` <'2014-10-29' 或者使用between 时间1 and 时间2也行
用一个变量存储最后登陆时间,倒叙遍历所有登陆时间,if(last_time-time=1){//时间间隔等于一天表示连续登陆
i++
last_time=time
}
if(last_time-time>1){//时间间隔大于一天非连续登陆退出循环
break
}
if(last_time-time<1){//时间间隔小于1天表示一天多次登陆,忽略当前记录继续循环
continu
}
随便写一个伪代码,你想用过程实现也成,或者用前台方法从结果集中获取数据也成;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)