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.