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

SQL SELECT ORDER BY plusieurs colonnes en fonction de la valeur de l'autre colonne

Dans votre requête actuelle, vous triez par la somme des quatre colonnes. Vous pouvez utiliser least pour obtenir la valeur la plus basse, votre tri par clause pourrait ressembler à :

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

Bien sûr, cela ne trierait que par la valeur la plus basse. Si deux lignes partagent la même valeur la plus basse, il n'y a pas de tri sur la deuxième valeur la plus basse. Faire cela est un peu plus difficile, et je n'ai pas vraiment compris de votre question si vous en avez besoin.