MySQL 统计60秒内数据数量

最近做项目有一个这样的需求

统计60内 被封停的ip数量大于5个

实现方法如下

1 SELECT
2   count(id) AS num
3 FROM
4   ddos_network_ipstatus
5 WHERE
6   ip_block_time BETWEEN date_add(now(), INTERVAL - 60 SECOND) AND now()
7 HAVING
8   num > 5;

注释

1 SELECT
2   count(id) AS num -- 统计60秒内数据
3 FROM
4   ddos_network_ipstatus -- 表名
5 WHERE
6   ip_block_time BETWEEN date_add(now(), INTERVAL - 60 SECOND)  AND now()
7   --  ip_block_time--表示需要过滤的时间字段, date_add(now(), INTERVAL - 60 SECOND) --表示当前时间减去60 ,now()--表示当前时间
8 HAVING 
9   num > 5; -- 查询后条件筛选 (这里表示数据大于5条记录)

猜你喜欢

转载自www.cnblogs.com/chming/p/12164584.html