php - 如何使用mysql和php获取排序行的位置

标签 php mysql flash

我有一个存储高分以及玩家 ID 的表。我希望能够通过玩家 ID 提取记录,然后获得他们的分数在表中的排名或位置。意思是,基本上我希望能够说“你在第 N 个”位置,纯粹基于玩家得分与所有其他得分的对比。例如:如果我排在第 46 位,那么对我来说,位置信息就像您在总分中排在第 46 位一样。谁能给我看个小例子?

最佳答案

有两种方法:

方法一:

SET @i = 0;

SELECT * FROM 
scores s1 INNER JOIN (SELECT *, @i := @i + 1 AS rank FROM scores ORDER BY score DESC) AS s2 USING (id);

方法二:

SELECT *, (SELECT COUNT(1) AS num FROM scores WHERE scores.score > s1.score) + 1 AS rank FROM scores AS s1
ORDER BY rank asc

关于php - 如何使用mysql和php获取排序行的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3490682/

相关文章:

php - 如何在codeigniter Controller 中使用限制

javascript - 从弹出模式中选择单选值,无需重新加载页面

mysql - SQL 从同一表中的一组值中选择不同的值

java - 在不同浏览器中维护网站

ajax - HTML5 和 AJAX 与 Adob​​e Flash 和 Actionscript 在多媒体和视频 session 方面的对比

php - Slim 路由中的 HttpBasicAuth

MySQL查询返回详细的group_contact信息(带有join)?

mysql:一对多自身并加入

javascript - 使用图像覆盖触发 Flash 按钮

php - 数据库树到多维数组