【发布时间】:2009-04-27 03:13:40
【问题描述】:
我正在尝试在 phpBB 论坛上对论坛排名进行细分。论坛排名由您的帖子数定义:如果您有 1-9 个帖子,您就是 1 级; 10-24,你是2级;等等。 (最高排名是超过 2000 个帖子。)
现在,我的论坛排名统计页面只是在做一堆愚蠢的查询:
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) from _users WHERE post_count BETWEEN x AND y; 来稍微整理一下您的查询;这可能会加速非常非常小的速度。