2

应该是一个很简单的问题。我自己做了一些研究,但可以使用一点澄清。

我有一个体育项目的排名表,该项目根据球队的胜率对联赛中的球队进行排名。这是有问题的一点:

// Make the query to order each team by rank:
$q = "SELECT * FROM football_1314_beacha_standings ORDER BY pct DESC";
$r = mysqli_query($db, $q);

工作正常。但是,当我有两个具有相同胜率的球队时,它会根据他们的主键对它们进行排序,这是有道理的,但在这种情况下这不是我想要的。

假设 A 队是 2-0,胜率为 0.999%,主键为 1;B 队的战绩为 6-0,胜率相同,主键为 2。我希望获胜次数多的球队列在另一支球队的上方。所以,我需要一个二级 ORDER BY 条件。

我尝试简单地添加一个逗号并添加第二个列名:

// Make the query to order each team by rank:
$q = "SELECT * FROM football_1314_beacha_standings ORDER BY pct, win DESC";
$r = mysqli_query($db, $q);

这在一定程度上可以通过将获胜率更高的球队置于另一支球队之上,但由于某种原因,将获胜率最低的球队置于积分榜的顶部,从而扰乱了整体顺序。不知道为什么会这样。

非常感谢任何和所有建议!

4

2 回答 2

6

我认为解决方案是:

 $q = "SELECT * FROM football_1314_beacha_standings ORDER BY pct DESC, win DESC";
于 2013-09-25T18:15:03.567 回答
1

你需要写两次 desc 。在“pct”和“win”之后

于 2013-09-25T18:17:03.880 回答