1

我有一个名为match的表,其中包含这 4 个字段(都是整数):

1.id
2.team1
3.team2
4.winner_team

一些示例记录,您可以看到它的样子:

id | team1 | team2 | winner_team
--------------------------------
1  | 3     | 15    | 3
--------------------------------
2  | 20    | 8     | 8
--------------------------------
3  | 18    | 11    | 18
--------------------------------
4  | 8     | 7     | 8
--------------------------------
...

现在,我需要根据团队的获胜次数对表格进行排序。例如,在示例中,您会看到winner_team 的编号。8 是 2(在我的真实表中有更多记录,因此 winner_team 可以有例如 10 次或更多次出现)。

基本上,我希望根据获胜次数(代表该团队作为获胜者团队的次数)从最好到最差的前 20 名团队。如果是 team1 或 team2 根本没有关系。

我觉得我需要使用 group_by 或类似的东西,但我不知道该怎么做。

有人可以用这种情况下的 mysql select 和 php 代码来帮助我吗?

提前致谢。

4

2 回答 2

3
select winner_team, count(id) as wins
from your_table
group by winner_team
order by wins desc
limit 20
于 2012-10-10T20:49:25.790 回答
1

我认为这就是你需要的http://sqlfiddle.com/#!2/4cc3b/3

基本上,您使用 MySQL 函数 COUNT() 和 GROUP BY 来获得结果。

于 2012-10-10T20:56:59.967 回答