Para obtener la clasificación en el orden que desea, use sus condiciones en ORDER BY, pero use DESC
después de ellos.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC
Si esto no funciona porque su consulta es más compleja, entonces puede usar la lógica booleana para cambiar su consulta (A OR B OR C) AND D
en (A AND D) OR (B AND D) OR (C AND D)
entonces puedes usar la siguiente consulta:
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
El AND static
no es necesario aquí porque todas las filas lo devuelven, pero en un ejemplo más complejo (donde también devuelve algunas filas que no son estáticas), entonces tendría que hacerlo de esta manera.