Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann man MYSQL-Abfrageergebnisse ORDER BY-Bedingungen ordnen?

Um die Sortierung in der gewünschten Reihenfolge zu erhalten, verwenden Sie Ihre Bedingungen in ORDER BY, aber verwenden Sie DESC nach ihnen.

SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
    condition1 DESC,
    condition2 DESC,
    condition3 DESC

Wenn dies nicht funktioniert, weil Ihre Abfrage komplexer ist, können Sie Ihre Abfrage mithilfe der booleschen Logik (A OR B OR C) AND D ändern in (A AND D) OR (B AND D) OR (C AND D) dann können Sie die folgende Abfrage verwenden:

SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
    condition1 AND static DESC,
    condition2 AND static DESC,
    condition3 AND static DESC

Das AND static ist hier nicht notwendig, weil alle Zeilen es zurückgeben, aber in einem komplexeren Beispiel (wo Sie auch einige Zeilen zurückgeben, die nicht statisch sind) müssten Sie es so machen.