gpt4 book ai didi

php - 如何查询 MySQL 数据库以确定用户是否连续登录 30 天还是 100 天?

转载 作者:行者123 更新时间:2023-11-29 21:41:52 24 4
gpt4 key购买 nike

如何查询 MySQL 数据库来确定用户是否连续登录 30 天还是 100 天?同样的情况也适用于其他用户操作。

假设如下所示的数据库表,每天为当天活跃的每个用户创建一条记录。

如何查询SELECT * WHERE user_id = 1 AND action = login并查找是否有 30 天或 100 天的登录,其中这些天是连续行且没有休息日?

用户统计表

id  
user_id
dateTime
action (login, made post, up voted, down votes, made comment, etc...)

最佳答案

在 MySQL 中,最简单的方法可能是使用变量。像这样的事情:

select us.*
from (select us.* ,
(@rn := if(date(@d) = date(datetime), @rn,
if(date(@d) = date(datetime) - interval 1 day,
if(@d := date(@datetime), @rn + 1, @rn + 1)
if(@d := date(@datetime), 1, 1)
)
)
) as rn
from userstats us cross join
(select @d := '', @rn := 0) params
where user_id = 1
order by datetime
) us
where rn >= 100;

关于php - 如何查询 MySQL 数据库以确定用户是否连续登录 30 天还是 100 天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34428294/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com