Pour obtenir le tri dans l'ordre que vous souhaitez, utilisez vos conditions dans ORDER BY, mais utilisez DESC
après eux.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC
Si cela ne fonctionne pas parce que votre requête est plus complexe, vous pouvez utiliser la logique booléenne pour modifier votre requête (A OR B OR C) AND D
en (A AND D) OR (B AND D) OR (C AND D)
alors vous pouvez utiliser la requête suivante :
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
Le AND static
n'est pas nécessaire ici car toutes les lignes le renvoient, mais dans un exemple plus complexe (où vous renvoyez également des lignes qui ne sont pas statiques), vous devriez le faire de cette manière.