Mysql
 sql >> Database >  >> RDS >> Mysql

Come fare in modo che i risultati delle query MySQL ordinino le condizioni ORDER BY?

Per ottenere l'ordinamento nell'ordine desiderato, utilizza le tue condizioni in ORDER BY, ma utilizza DESC dopo di loro.

SELECT *
FROM person
WHERE (condition1 OR condition2 OR condition3)
AND maintable.status = static
ORDER BY
    condition1 DESC,
    condition2 DESC,
    condition3 DESC

Se questo non funziona perché la tua query è più complessa, puoi utilizzare la logica booleana per modificare la tua query (A OR B OR C) AND D in (A AND D) OR (B AND D) OR (C AND D) quindi puoi utilizzare la seguente query:

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

Il AND static non è necessario qui perché tutte le righe lo restituiscono, ma in un esempio più complesso (dove restituisci anche alcune righe che non sono statiche), dovresti farlo in questo modo.