Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como fazer a ordem das condições ORDER BY dos resultados da consulta MYSQL?


Para obter a ordenação na ordem desejada, use suas condições no ORDER BY, mas use DESC depois deles.
SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
    condition1 DESC,
    condition2 DESC,
    condition3 DESC

Se isso não funcionar porque sua consulta é mais complexa, você pode usar a lógica booleana para alterar sua consulta (A OR B OR C) AND D em (A AND D) OR (B AND D) OR (C AND D) então você pode usar a seguinte 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

O AND static não é necessário aqui porque todas as linhas o retornam, mas em um exemplo mais complexo (onde você também retorna algumas linhas que não são estáticas), você teria que fazer dessa maneira.