我想在phpBB論壇上撰寫論壇排名的細目。論壇等級由您的帳戶數量來定義:如果您有1-9個帖子,那麼您的等級爲1; 10-24,你是2級;等等。 (最高排名是2000個以上職位的東西)如何一次查詢一系列範圍的count()?
現在,我的論壇排名統計頁面只是做了一堆啞查詢:
SELECT COUNT(*) from _users WHERE post_count>=1 AND post_count<10;
SELECT COUNT(*) from _users WHERE post_count>=10 AND post_count<25;
...等等。
查詢在幾秒鐘內運行,所以我真的只是好奇(爲將來的參考)一個更好的方法來解決這個問題 - 感覺就像應該有一個查詢我可以運行,會返回結果類似爲此:
rank_id | count
1 | 5000
2 | 2000
...
我有具有行列,併爲實現這一級別職位所需的最小數目的清單另一個表。不知道是否有必要,或者是否有更聰明的方式來編寫我的查詢。
我使用MySQL數據庫如果有幫助,但我更感興趣的是跨數據庫的答案。
我沒有一個解決方案,但你可以通過使用SELECT COUNT(USER_ID)整理你的查詢起來一點從_users WHERE POST_COUNT x和y之間;這可能會加速實際上非常少量的事情。 – 2009-04-26 19:01:26