【发布时间】:2011-06-09 20:22:25
【问题描述】:
我的 sql 数据库存储游戏玩家的高分,如下所示:
playerName
scores
为了显示分数,我正在尝试创建一个查询,该查询为 playerId“joe”返回 joe 的位置以及一个得分比 joe 多和少的玩家:
(rank) (playerName) (scores)
5000 luci 2001
5001 joe 1900
5002 marc 1750
(我在这里添加排名只是为了更清楚。它不存储,仅代表按分数排序时列表中的位置) 有没有办法通过查询来做这样的事情而不会得到一半的数据库作为结果?
【问题讨论】:
-
rank列似乎很方便...您可以选择 joe 的排名 + 或 - 1 之间的排名吗? -
@FOSC:排名列目前不存在,因为它是多余的,如果一个用户提交更高的分数,我将不得不更新所有排名行。但目前我正在考虑添加这样一行是否会更好,因为具有多个选择/连接的其他路径对我来说似乎相当复杂。
标签: mysql sql-order-by