Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Bedingte Sortierung in MySQL?

Sie könnten ORDER BY (done asc, aux desc) versuchen wobei aux mit einem CASE berechnet wird um entweder Priorität oder Datum basierend auf dem Wert von done zu liefern (Möglicherweise müssen Sie sie in denselben Typ umwandeln, damit sie in denselben Ausdruck passen, z. B. das Datum in eine geeignete ganzzahlige Tageszahl umwandeln).

Zum Beispiel:

SELECT * FROM tab
ORDER BY done desc,
         case done
             when 0 then prio 
             else to_days(thedate)
         end desc;