数据库-什么是排名系统的良好设计

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

我希望有2000-5000个用户.

解决方法:

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
上一篇:CF A. Dreamoon and Ranking Collection 【模拟】


下一篇:Mysql – 如何通过交替(1,2,3,1,2,3,1,2,3)行来订购结果,是否可能?