2010-12-05 18 views
1

Hilfe ist es möglich, die Abfrage unten zu bearbeiten:Benötigen mit MySQL-Abfrage

SELECT * 
FROM t1  
ORDER BY CASE 
    WHEN projects_status = 'active' THEN 1 
    WHEN projects_status = 'expired' THEN 2 
    WHEN projects_status = 'closed' THEN 3 
    END 

Ergebnisse in der folgenden Sortierreihenfolge haben:

  • Aktive projects_status ASC
  • Expired projects_status DESC
  • Geschlossen projekte_status DESC
+1

Können Sie ein Beispiel für das erwartete Ergebnis geben? –

Antwort

1

Ein Vergleich gibt eine 0 oder 1 zurück, wobei eine 0 normalerweise vor einer 1 sortiert wird. Wenn Sie also ASC sagen, möchten Sie wahrscheinlich, dass die Zeilen zurückgegeben werden, bei denen dies wahr ist (1). Sie müssen in diesem Fall also DESC verwenden.

ORDER BY 
projects_status = 'active' DESC, 
projects_status = 'expired' ASC, 
projects_status = 'closed' ASC 
+0

Es schien nicht zu tun, was ich brauche ... – santa