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