什么是排名系统的好设计

时间:2010-12-08 19:01:23

标签: database mysql ranking

我有一个USER表,其中包含userIdpoint个字段。在运行时,我想知道特定用户群的排名是什么。实现这一目标的最佳方法是什么:
1:将所有用户查询到列表中。基于点对列表进行排序并进行二进制搜索以查找该用户的排名。这听起来像个坏主意。
2:是否可以通过创建数据库查询来完成这些任务?

我希望有2000-5000名用户。

1 个答案:

答案 0 :(得分:5)

SET @rownum := 0;

SELECT rank, userId, point 
FROM (
       SELECT @rownum := @rownum + 1 AS rank, userId, point
       FROM user ORDER BY point DESC
     ) 
as result WHERE userId = xxxxxxxx