我有一個表團隊(名稱,ID,點數)。mysql查詢從結果集中查找特定記錄的行號
我想根據積分找到團隊的排名。
SELECT *FROM team ORDER BY points DESC
以上查詢排序結果按組隊點數降序排列。現在我想找到特定隊伍的排名。意味着這個結果集的行號。
我有一個表團隊(名稱,ID,點數)。mysql查詢從結果集中查找特定記錄的行號
我想根據積分找到團隊的排名。
SELECT *FROM team ORDER BY points DESC
以上查詢排序結果按組隊點數降序排列。現在我想找到特定隊伍的排名。意味着這個結果集的行號。
簡單的方法:計算所有與更多(或等於)點的球隊比你desired_team
SELECT Count(*)
FROM team
WHERE points >= (SELECT points
FROM team
WHERE name = "team_name");
(你需要包括你的團隊,因此「列表」以1開頭。) 在這種情況下,如果您的球隊與其他球隊相同得分,則此排會說您的球隊處於此狀態。如果你只whant列出與多個點的團隊使用這樣的:
SELECT Count(*) + 1
FROM team
WHERE points > (SELECT points
FROM team
WHERE name = "team_name");
PD:對不起,我的英語
試試這個。它應該給你你需要的東西。
SELECT
@i:[email protected]+1 AS rownumber,
t.*
FROM
team AS t,
(SELECT @i:=0) AS test
ORDER BY points DESC
試試這個:
SELECT IF(@prev <> points, @s:[email protected]+1, @s:[email protected]) AS `row_number`,
id, name, @prev:=points points
FROM
team, (SELECT @s:= 1, @prev:= 0) s
ORDER BY points DESC
它不是你鏈接到問題的副本。另一個問題只需要選擇一行時的排名。類似但不同。 – Jeff