2011-08-12 20 views
3

我有一個sql語句,帶回ID。目前,我正在使用通常的「ORDER BY ID」訂購ID。我需要能夠做的是讓查詢按照我設置的特定ID排序前3行。剩下的訂單就像現在一樣。例如,我想說前3行將按照順序依次爲id 7,10,3,然後其餘行將按照慣例排序。在mysql中的具體排序

現在我只是有一個基本的SQL語句...比Quassnoi的查詢短

SELECT * from cards ORDER BY card_id 

回答

3

了一下,與現場:

-- ... 
ORDER BY FIELD(card_id, 3, 10, 7) DESC 

你必須反轉,因爲訂單的DESC,我沒有找到辦法更自然地做到這一點。

+1

+1,一個不錯的。 – Quassnoi

4
SELECT * 
FROM cards 
ORDER BY 
     CASE card_id WHEN 7 THEN 1 WHEN 10 THEN 2 WHEN 3 THEN 3 ELSE 4 END, 
     card_id 
+0

太好了,謝謝。這有很大幫助。 – Brian