2011-08-12 46 views
3

私はIDを戻すSQL文を持っています。現在、私は通常の "ORDER BY id"でIDの順序を指定しています。私ができる必要があるのは、私が設定した特定のIDで最初の3行を照会順に並べることです。残りの注文は現在のとおりです。たとえば、最初の3行がidの7,10,3の順になるとします。残りの行はidによって通常どおりに並べ替えられます。mysqlの特定の注文

今私はちょうどFIELDとQuassnoiのクエリよりも少し短い基本的なSQL文...

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