Per ottenere l'ordinamento nell'ordine desiderato, utilizza le tue condizioni in ORDER BY, ma utilizza DESC
dopo di loro.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC
Se questo non funziona perché la tua query è più complessa, puoi utilizzare la logica booleana per modificare la tua query (A OR B OR C) AND D
in (A AND D) OR (B AND D) OR (C AND D)
quindi puoi utilizzare la seguente query:
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
Il AND static
non è necessario qui perché tutte le righe lo restituiscono, ma in un esempio più complesso (dove restituisci anche alcune righe che non sono statiche), dovresti farlo in questo modo.