Mysql
 sql >> Base de données >  >> RDS >> Mysql

Tri conditionnel dans MySQL ?

Vous pouvez essayer ORDER BY (done asc, aux desc) où aux est calculé avec un CASE pour donner la priorité ou la date en fonction de la valeur de done (vous devrez peut-être les convertir dans le même type pour tenir dans la même expression, par exemple, convertir la date en un nombre entier de jours approprié).

Par exemple :

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