1

假设这是一个名为的表fixtures

id | team1 | team2
1  | 25    | 40
2  | 10    | 0
3  | 13    | 8
4  | 0     | 18
5  | 32    | 12

我需要以这样的方式对结果进行排序,以使team10 或team20 的行最后结束。其他行的顺序无关紧要,只要它们都排在至少有一个 0 的行之前。0 行相对于彼此的顺序也无关紧要。因此,对于上面的示例,输出行 ID 的顺序应该类似于:

1, 3, 5, 2, 4

我知道在获得所有结果后我可以在 PHP 中执行此操作,但我想知道是否有办法在查询中执行此操作。

注意:所有其他值(除了 0)只能是正整数。

4

1 回答 1

3

试试这个,

SELECT  ID
FROM    TableName
ORDER   BY (LEAST(team1, team2) = 0), ID

输出

╔════╗
║ ID ║
╠════╣
║  1 ║
║  3 ║
║  5 ║
║  2 ║
║  4 ║
╚════╝
于 2013-04-15T13:23:26.610 回答