2013-04-15 29 views
1

比方說,這是一個名爲fixtures表:排序MySQL的結果,使結果與任何兩列的一定值顯示上次

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)只能是正整數。

回答

3

試試這個,

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

輸出

╔════╗ 
║ ID ║ 
╠════╣ 
║ 1 ║ 
║ 3 ║ 
║ 5 ║ 
║ 2 ║ 
║ 4 ║ 
╚════╝ 
+1

謝謝,工程就像一個魅力。以前從來沒有碰到過「最少」。我會在幾分鐘內接受答案。 – jovan

+0

不客氣':D' –