Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment ordonner les résultats des requêtes MYSQL ?

Pour obtenir le tri dans l'ordre que vous souhaitez, utilisez vos conditions dans ORDER BY, mais utilisez DESC après eux.

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

Si cela ne fonctionne pas parce que votre requête est plus complexe, vous pouvez utiliser la logique booléenne pour modifier votre requête (A OR B OR C) AND D en (A AND D) OR (B AND D) OR (C AND D) alors vous pouvez utiliser la requête suivante :

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

Le AND static n'est pas nécessaire ici car toutes les lignes le renvoient, mais dans un exemple plus complexe (où vous renvoyez également des lignes qui ne sont pas statiques), vous devriez le faire de cette manière.