所以我有一个图像上传器,我想创建一个最小的机器人保护。 我的表结构如下所示:
| ID | uploader_ip | image_name | image_url_id | date
------------------------------------------------------
| 1 | 127.0.0.1 | bla.jpg | fsdJGf | UNIX Timestamp (UPDATE ON: Create)
我想检查是否有更多或者恰好有50张图片/行,这些图片/行是在较少或完全两分钟内创建的。
我该怎么做?
答案 0 :(得分:0)
您需要构建一个包含count和group的查询,并在date列上放置一个范围。如果您仅在最近两分钟内执行此操作,则查询将如下所示:
select count(*) from your_table where uploader_ip="<some ip>" and date > (now() - interval 2 minute) group by uploader_ip;
答案 1 :(得分:-1)
这是查询
Select count(*) from table
where
table.date > now() - interval 2 minute
-- or the function date_sub(now(), interval 2 minute)
and id = 1
如果您想要在2分钟内完成上传的所有用户ID:
select id,
(select count(*)
from table
where id = t.id
and date > t.date - interval 1 minute
and date < t.date + interval 1 minute
) as total
from table t
where total >= 50