我有一个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