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

SQL SELECT ORDER BY più colonne a seconda del valore dell'altra colonna

Nella tua query attuale, ordini in base alla somma delle quattro colonne. Puoi utilizzare least per ottenere il valore più basso, quindi il tuo ordine per clausola potrebbe essere simile a:

SELECT *
FROM vehicle
ORDER BY
  `revisit` DESC,
  CASE WHEN `revisit` = 1 THEN LEAST(`FL`, `FR`, `RR`, `RL`) END ASC,
  CASE WHEN `revisit` = 0 THEN `date` END ASC

Ovviamente questo ordinerebbe solo in base al valore più basso. Se due righe condividono lo stesso valore più basso, non viene eseguito alcun ordinamento sul secondo valore più basso. Farlo è un po' più difficile e non ho davvero capito dalla tua domanda se ne hai bisogno.