For at få sorteringen i den rækkefølge, du ønsker, skal du bruge dine betingelser i ORDER BY, men brug DESC
efter dem.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC
Hvis dette ikke virker, fordi din forespørgsel er mere kompleks, kan du bruge boolsk logik til at ændre din forespørgsel (A OR B OR C) AND D
ind i (A AND D) OR (B AND D) OR (C AND D)
så kan du bruge følgende forespørgsel:
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
AND static
er ikke nødvendigt her, fordi alle rækker returnerer det, men i et mere komplekst eksempel (hvor du også returnerer nogle rækker, som ikke er statiske), så skulle du gøre det på denne måde.