2013-04-23 32 views
0

我有一個看起來像訂購特定查詢同一字段設置結果

function myFunction($team1, $team2) { 
$query = "select team_name from myteam where team_id=$team1 or team_id=$team2"; 
} 

這樣的結果總是由低TEAM_ID所以如果它是訂購此功能

myFunction(12, 8); 

回報將是team8然後team12。我想要做的是按照查詢列表中第一個出現的順序排列結果。

這可能嗎?

回答

2
function myFunction($team1, $team2) { 
$query = "select team_name from myteam where team_id=$team1 or team_id=$team2 ORDER BY (team_id=$team1) DESC, team_id"; 
} 
+0

1當然包括TEAM_ID如項所述第二順序是多餘的,因爲在查詢只能包含最多兩個TEAM_ID值(它已經被由條件排序項目排序)? – 2013-04-23 07:11:19

+0

這是真的。但是我認爲它無論如何也不排除第二個因素,這可以擴展到涉及超過2個項目的其他查詢,如果他稍後參考這個例子。接得好 :) – 75inchpianist 2013-04-23 07:16:54

0

嘗試此,

function myFunction($team1, $team2) { 
$query = "select team_name from myteam where (team_id=$team1 OR team_id=$team2) ORDER BY team_id DESC"; 
} 
1
SELECT team_name 
    FROM myteam 
WHERE team_id IN ($team1,$team2) 
ORDER 
    BY FIELD(team_id,$team1,$team2);