gpt4 book ai didi

php - 从 MySQL 的评级字段中查找排名

转载 作者:行者123 更新时间:2023-11-29 14:34:02 24 4
gpt4 key购买 nike

我有一个如下所示的 MySQL 表:

id (int primary)
name (text)
rating (float)

我有一个显示排名的页面,如下所示:

$i = 0;
$q = mysql_query("SELECT * FROM teams ORDER BY rating DESC");
while($r = mysql_fetch_assoc($q)){
$i++;
print("$i: {$r['name']}<br>");
}

这会按评分顺序显示团队以及排名。并且它有效。

现在,如果给我一个团队的 ID,我如何找到他们的排名而不需要像这样循环?一个 MySQL 查询,返回团队的信息 + 一个数字排名,表明如果我渲染了整个列表,他们将在列表中排名靠后。

谢谢!

最佳答案

要获得排名,您可以执行以下操作:

SELECT COUNT(*) as ranking
FROM teams t
WHERE t.rating >= (SELECT rating FROM teams WHERE id=$ID);

要获取所有相关信息,您可以执行以下操作:

SELECT t.*,COUNT(*) as rank
FROM teams t
JOIN teams t2 ON t.rating<=t2.rating
WHERE t.id=4;

这加入teams自身加入t.rating <= t2.rating ,因此对于评分高于或等于您的每个团队,您都会获得一行。

COUNT只是计算有多少支球队的评分高于或等于您。

请注意,如果出现平局,您的排名就会较低。您可以更改 <=<如果你想要最高的。

关于php - 从 MySQL 的评级字段中查找排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9425695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com