我有一张桌子可以存储高分,还有玩家ID.我希望能够通过玩家ID提取记录,然后在表格中获得他们得分的排名或位置.手段,基本上我希望能够说“你在第N个”的位置,纯粹基于球员得分与其他所有得分.例如:如果我处于第46位,那么对我来说,位置信息就像你在总分中排在第46位.谁能给我看一些小例子?
解决方法:
有两种方法:
方法1:
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);
方法2:
SELECT *, (SELECT COUNT(1) AS num FROM scores WHERE scores.score > s1.score) + 1 AS rank FROM scores AS s1
ORDER BY rank asc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。