2011-06-28 165 views
1

我想顯示一個過濾結果給幾個不斷刮掉我的內容的ip。我用.htaccess阻止了他們,他們改變了他們的IP地址,並繼續這樣做。所以我想,我想創建一個軟塊,它不會顯示我所有的內容,並希望他們不會注意到。過濾SQL結果

我的表中有一個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的新手,所以我甚至不知道我在尋找什麼。我希望這裏有人能幫助我!謝謝:)

+0

究竟你想從SQL獲得什麼結果? – Nitesh

+0

爲什麼不只是提供一個靜態頁面? – Phil

+0

我想只能得到每個可以被3整除的ID,等於1,就像ID 1,4,7,10,13,16等。如果我給他們看一個靜態頁面,他們會知道某些事情已經結束,因爲我通常會更新一天幾次。 – steve

回答

2

行後,如果您想通過3得到的餘數,你應該使用%運算符。

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

謝謝!完美的作品。再次感謝 :) – steve

0

通常,ID列不用於對其進行計算。它不代表記錄的唯一標識符以外的任何內容(最多隻能用於按時間順序對記錄進行排序) - 例如,您可能有GUID,並且您的應用程序應該可以工作。

如果要存儲要在數據庫中阻止的IP,請考慮在表中添加另一列,將其稱爲status或類似名稱,並在該列中存儲該ip的狀態 - 此狀態可能爲乾淨,多疑,堵塞等之後,你SELECT應該只用阻塞狀態

+0

謝謝!我喜歡你的建議,如果以上情況不可行,將會這樣做。 – steve