sql >> Base de Datos >  >> RDS >> Mysql

¿Ordenación condicional en MySQL?

Puedes intentar ORDER BY (done asc, aux desc) donde aux se calcula con un CASE para producir prioridad o fecha según el valor de done (Es posible que deba convertirlos en el mismo tipo para que quepan en la misma expresión, por ejemplo, convertir la fecha en un número de día entero adecuado).

Por ejemplo:

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