sql >> Databasteknik >  >> RDS >> Mysql

SQL SELECT ORDER BY flera kolumner beroende på värdet för den andra kolumnen

I din aktuella fråga ordnar du efter summan av de fyra kolumnerna. Du kan använda least för att få det lägsta värdet, så din order by-klausul kan se ut så här:

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

Naturligtvis skulle detta bara sorteras efter det lägsta värdet. Om två rader båda skulle dela samma lägsta värde, finns det ingen sortering på det näst lägsta värdet. Att göra det är lite svårare, och jag förstod inte riktigt från din fråga om du behöver det.




  1. Vilka är SQL-begränsningar och dess olika typer?

  2. Hur du verifierar domänägande

  3. Hur tar man bort MySQL helt med konfigurations- och biblioteksfiler?

  4. Varför ta bort django DATABASE_OPTIONS:s init_command set engine=INNODB efter att tabellen skapats?