2016-07-14 13 views
1

Ich habe Daten wie und es mehr Spalten hat nicht nur unter zwei:mysql benutzerdefinierte Reihenfolge durch Abfrage auf derselben Tabelle

id  | s_type 
1  | ACTIVE 
2  | PENDING 
3  | UPDATE 
4  | ACTIVE 
5  | PENDING 
6  | UPDATE 

ich verwenden, um von ASC, DESC, aber ich mag Daten mit benutzerdefinierter Reihenfolge anzuzeigen und i wollen zeigen, es als meine kundenspezifische Aufträge (nicht nur asc oder absteigend): wollen zuerst alle PENDING dann alle aktiven dann alle UPDATE s_type

id  | s_type 
1  | PENDING 
2  | PENDING 
3  | ACTIVE 
4  | ACTIVE 
5  | UPDATE 
6  | UPDATE 

sehen, wie ich mit einzelnen Abfrage angezeigt werden kann

+3

See FIELD() .... – Strawberry

Antwort

1

Versuchen sie folgendes:

SELECT * 
FROM yourtable 
ORDER BY field(s_type, 'PENDING', 'ACTIVE', 'UPDATE'), id 

Oder CASE WHEN

SELECT * 
FROM yourtable 
ORDER BY CASE s_type WHEN 'PENDING' THEN 1 
        WHEN 'ACTIVE' THEN 2 
        WHEN 'UPDATE' THEN 3 END, id 
+0

Dank Mann, Sie beide Antworten funktioniert, Daumen nach oben:) – Abid

0

verwenden habe ich versucht, diese und es funktioniert:

 SELECT * FROM mytable ORDER BY 
    s_type = 'UPDATE', 
signal_status = 'ACTIVE', 
signal_status = 'PENDING' 
Verwandte Themen