一尘不染

如何最好地在不循环的情况下使用php和mysql从分数表​​中获得某人的“排名”

mysql

我的桌子上有分数和缩写。

但是桌子不会被订购。

我可以很容易地获得总行数,而且我知道我可以将所有行和Order By都获得,然后遍历它们并以这种方式获得排名…

但是有更好的方法吗?可以使用SQL语句完成此操作吗?

我不太担心性能,因此,如果SQL语句有些疯狂,那么就会循环。

抱歉-表格具有ID作为主键,用于验证唯一应用安装的字符串,用于缩写的列和用于得分的列。

当某人单击“获取排名” …我想告诉他们他们的分数是1000玩家中的100。


阅读 190

收藏
2020-05-17

共1个答案

一尘不染

SELECT s1.initials, (
  SELECT COUNT(*)
  FROM scores AS s2
  WHERE s2.score > s1.score
)+1 AS rank
FROM scores AS s1
2020-05-17