Aby uzyskać sortowanie w żądanej kolejności, użyj warunków w ORDER BY, ale użyj DESC
po nich.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC
Jeśli to nie zadziała, ponieważ zapytanie jest bardziej złożone, możesz użyć logiki logicznej, aby zmienić zapytanie (A OR B OR C) AND D
na (A AND D) OR (B AND D) OR (C AND D)
możesz użyć następującego zapytania:
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
nie jest to konieczne, ponieważ wszystkie wiersze zwracają to, ale w bardziej złożonym przykładzie (gdzie zwracasz również niektóre wiersze, które nie są statyczne), musisz to zrobić w ten sposób.