Chcete-li dosáhnout řazení v požadovaném pořadí, použijte podmínky v ORDER BY, ale použijte DESC
po nich.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
condition1 DESC,
condition2 DESC,
condition3 DESC
Pokud to nefunguje, protože váš dotaz je složitější, můžete ke změně dotazu použít booleovskou logiku (A OR B OR C) AND D
do (A AND D) OR (B AND D) OR (C AND D)
pak můžete použít následující dotaz:
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
zde není nutné, protože to vracejí všechny řádky, ale ve složitějším příkladu (kde vracíte i některé řádky, které nejsou statické) byste to museli udělat tímto způsobem.