2011-10-18 24 views
15

Ben varsa: 4, 2, 5, 3,1: Açık mysql sorgu için sıralama düzeni belirtin?

ID | Title 
1 | Shirt 
2 | CD 
3 | Cap 
4 | Mp3 
5 | Badge 

bu düzene göre sıralamak istiyorsanız

. Bunu açıkça belirttiğiniz bir sql sorgusu yapmanın bir yolu var mı? Sen BY ilkel arama tablosu olarak için, bir kasa kullanabilirsiniz

select * from TABLE order by ID(4,2,5,3,1) ?? 
+0

Bir "konum" sütununu tanıtıp, öğelere tam olarak nasıl sıralamanızı ve sıraya göre sıraları sorgulamanızı sağlayın? Bir şeyleri ID-s ile sipariş etmeye güvenmek sadece ... aptal. –

cevap

22

Aslında şaşırtıcı yakındı.

select * from TABLE order by field(ID,4,2,5,3,1) 
+1

Güzel, bu MySQL'e özgüdür? –

+1

@muistooshort Evet - daha fazla mysql "funk", ama tüm bu "standartlara uygun olmayan" şeyler sadece çok kullanışlı, karşı koymak çok zor! – Bohemian

4

: Böyle bir şey

select * 
from your_table 
order by 
    case id 
     when 4 then 1 
     when 2 then 2 
     when 5 then 3 
     when 3 then 4 
     when 1 then 5 
    end 
2
select * from TABLE order by ID=1,ID=3,ID=5,ID=2,ID=4; 

BU ÇALIŞTIR VE ME SİZİN ŞÜPHEYE HAKKINDA BİLMEK LET: Bu kadar basit.

+6

SİZİN TAHRİK YOLLARINIZDIR. – smathy