database - 什么是排名系统的好设计

标签 database mysql ranking

我有一个 USER 表,它有 userIdpoint 字段。在运行时,我想知道特定用户基于他们的观点的排名是多少。实现此目的的最佳方法是什么:
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

关于database - 什么是排名系统的好设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391190/

相关文章:

javascript - 排列数组元素

android - 存储需要在我的移动应用程序中检索的数据

java - 使用netbeans在java中更改密码程序

mysql - 数据库如何处理冗余值?

c# - LinqToSql 引用的实体将抛出 NullReferenceException

c# - 使用 ADO.NET 将 JSON 文档插入 MySQL 中的行

php - 如何根据 php 数据库值动态更改 HTML 中的内容?

php - 从 mysql 获取 - laravel

MySQL 排名(排名靠前的用户)

ranking - 关键词排名