MySQL - 查询中的第二个ORDER BY参数

时间:2013-09-25 18:11:28

标签: mysql sql sql-order-by

应该是一个非常简单的问题。我自己做过一些研究,但可以稍微澄清一下。

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

// 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,胜率为.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);

这在某种程度上可以让球队获得更多胜利,但由于某种原因,通过将最低胜率的球队置于积分榜的前列来抛出总体顺序。不知道为什么会这样做。

非常感谢任何建议!

2 个答案:

答案 0 :(得分:5)

我认为解决方案是:

 $q = "SELECT * FROM football_1314_beacha_standings ORDER BY pct DESC, win DESC";

答案 1 :(得分:1)

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