php - 如何最好地从带有 php 和 mysql 的分数表中获取某人的 'rank' 而无需循环

标签 php mysql

我的表将保存乐谱和首字母。

但是 table 不会被订购。

我可以很容易地得到总行数,我知道我可以得到所有的行数并排序,然后遍历它们并以这种方式获得排名......

但是有没有更好的办法呢?这可以用 SQL 语句完成吗?

我不太关心性能,所以如果 SQL 语句是一些疯狂的东西,那么我就循环。

抱歉 - 表以 id 作为主键,一个用于验证唯一应用安装的字符串,一个用于首字母的列和一个用于分数的列。

当有人点击 GET RANK 时...我希望能够告诉他们他们的分数是 100 名玩家中的 100 名。

最佳答案

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

关于php - 如何最好地从带有 php 和 mysql 的分数表中获取某人的 'rank' 而无需循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8767323/

相关文章:

php - 如何在没有 exec() 函数的情况下从 mysql 导出数据库

php - PHP 中未初始化的变量

c# - 如何限制对 MVC5 中某些操作的访问?

mysql - 如何使用phpMyAdmin在MySQL中手动存储上标值

php - 当没有标签时如何隐藏标签容器?

php - phpMailer 中的附件

javascript - 为什么 ajax `application/json` 会运行 PHP 代码两次?

php - 如何计算前 3 个结果

mysql - 远程 MySQL 连接速度慢

mysql - 使用 Doctrine2 : Error: Expected end of string, 的查询问题得到 '.'