过滤SQL结果

时间:2011-06-28 03:54:44

标签: mysql sql

我想向一些不断抓取我内容的ip显示过滤结果。我用.htaccess阻止了他们,他们改变了他们的IP地址并继续这样做。所以我想,我想创建一个软块,不会向我们展示我的所有内容,希望他们甚至不会注意到。

我的表有一个auto_increment字段

 id | category |  everything else
 1       1
 2       1
 3       4
 4       2

我一直在尝试这样的事情。

SELECT * from mytable WHERE `category` = '1' having avg(id/3) = 1 ORDER BY `id` DESC LIMIT 0 , 10

我已经永远搜索了但是我是sql的新手,所以我甚至不知道我在寻找什么。我希望有人能帮助我!谢谢:))

2 个答案:

答案 0 :(得分:2)

如果你想将除法的余数除以3,你应该使用%operator。

SELECT * from mytable WHERE `category` = '1' and id % 3 = 1 ORDER BY `id` 
DESC LIMIT 0 , 10

答案 1 :(得分:0)

通常,ID列不用于对其进行计算。除了记录的唯一标识符之外,它不代表任何其他内容(最多应该用于按时间顺序对记录进行排序) - 例如,您可以拥有GUID,并且您的应用程序应该可以正常工作。

如果要存储要在数据库中阻止的IP,请考虑在表中添加另一列,将其称为status或类似的类,并在此列中存储该IP的状态 - 这状态可能是干净,可疑,已阻止等。之后,SELECT应仅在具有阻止状态的行

之后查看