假设这是一个名为fixtures
的表:
id | team1 | team2
1 | 25 | 40
2 | 10 | 0
3 | 13 | 8
4 | 0 | 18
5 | 32 | 12
我需要以这样的方式对结果进行排序:team1
为0或team2
的行最后为0。其他行的顺序无关紧要,只要它们都在具有至少一个0的那些行之前。0行相对于彼此的顺序也无关紧要。因此,对于上面的示例,输出行ID的顺序应该类似于:
1, 3, 5, 2, 4
我知道在获得所有结果后我可以在PHP中执行此操作,但我想知道是否有办法在查询中执行此操作。
注意:所有其他值(除了0)只能是正整数。
答案 0 :(得分:3)
尝试一下,
SELECT ID
FROM TableName
ORDER BY (LEAST(team1, team2) = 0), ID
输出
╔════╗
║ ID ║
╠════╣
║ 1 ║
║ 3 ║
║ 5 ║
║ 2 ║
║ 4 ║
╚════╝