2012-06-20 82 views
1

中的條件順序如何按照mysql中「where in」子句中的條件順序從數據庫中獲取結果?按條款順序獲取記錄

e.g:

id name 
1 | riz 
2 | irf 
3 | far 
4 | zab 
5 | yas 

我希望把我在有條件的訂單數據在條款...?

select * from foo where id in (2,3,4,1,5); 

例如,

id name 
2 | irf 
3 | far 
4 | zab 
1 | riz 
5 | yas 

回答

3

你可以使用:

select * from foo where id IN(2,3,4,1,5) order by FIND_IN_SET(id, '2,3,4,1,5'); 

它會爲你工作。

1

您可以提供每個id作爲不同的排序情況。

SELECT * 
FROM foo 
WHERE 
    id IN(2,3,4,1,5) 
ORDER BY 
    id = 2 DESC, 
    id = 3 DESC, 
    id = 4 DESC, 
    id = 1 DESC, 
    id = 5 DESC 
1
SELECT * 
FROM foo 
where id in (2,3,4,1,5); 
ORDER BY FIND_IN_SET(id, '2,3,4,1,5') 

這裏是參考ORDER BY FIND_IN_SET()