W bieżącym zapytaniu zamawiasz według sumy czterech kolumn. Możesz użyć least
aby uzyskać najniższą wartość, więc klauzula order by może wyglądać tak:
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
Oczywiście posortowałoby to tylko według najniższej wartości. Jeśli dwa wiersze mają tę samą najniższą wartość, nie ma sortowania według drugiej najniższej wartości. Zrobienie tego jest trochę trudniejsze i tak naprawdę nie zrozumiałem z twojego pytania, czy tego potrzebujesz.