Php MySQL在任何24小时窗口内检查X记录
我有一个系统,它将失败的登录尝试存储在一个表中,并记录事件的日期时间。我需要的是一种查询数据库的方法,以检查任何用户在任何24小时内是否有X次失败的尝试 例如,设x=5。我需要检查是否有任何用户在任何时间点有一个24小时窗口,其中该表中的记录数为5或更多。24小时周期可以是从当前时间到24小时之前,或者可以是例如上个月间隔24小时的任意两个时间点之间的时间 这可以通过一个简单的MySQL查询实现吗?我看到的大多数线程都是关于计算过去24小时内的记录的,这并不是我所需要的。Php MySQL在任何24小时窗口内检查X记录,php,mysql,sql,datetime,count,Php,Mysql,Sql,Datetime,Count,我有一个系统,它将失败的登录尝试存储在一个表中,并记录事件的日期时间。我需要的是一种查询数据库的方法,以检查任何用户在任何24小时内是否有X次失败的尝试 例如,设x=5。我需要检查是否有任何用户在任何时间点有一个24小时窗口,其中该表中的记录数为5或更多。24小时周期可以是从当前时间到24小时之前,或者可以是例如上个月间隔24小时的任意两个时间点之间的时间 这可以通过一个简单的MySQL查询实现吗?我看到的大多数线程都是关于计算过去24小时内的记录的,这并不是我所需要的。SELECT SELEC
SELECT
SELECT
yt1.userId
FROM
your_table yt1
INNER JOIN your_table yt2 ON yt1.userId = yt2.userId
AND yt2.fail_date <= yt1.fail_date
AND yt2.fail_date >= yt1.fail_date - INTERVAL 24 HOUR
GROUP BY yt1.userId
HAVING COUNT(*) >= 5
yt1.userId
从…起
您的表yt1
在yt1.userId=yt2.userId上内部连接您的_表yt2
和yt2.fail_date=yt1.fail_date-间隔24小时
按yt1.userId分组
计数(*)大于等于5的