Mysql
 sql >> Database >  >> RDS >> Mysql

Ordinamento condizionale in MySQL?

Potresti provare ORDER BY (done asc, aux desc) dove aux viene calcolato con un CASE per dare priorità o data in base al valore di done (potrebbe essere necessario eseguirne il cast allo stesso tipo per adattarli alla stessa espressione, ad esempio trasmettere la data a un numero di giorni intero adatto).

Ad esempio:

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