2011-08-12 23 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