最近做项目有一个这样的需求
统计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条记录)