sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo hacer que los resultados de la consulta MYSQL ORDEN POR orden de condiciones?

Para obtener la clasificación en el orden que desea, use sus condiciones en ORDER BY, pero use DESC después de ellos.

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

Si esto no funciona porque su consulta es más compleja, entonces puede usar la lógica booleana para cambiar su consulta (A OR B OR C) AND D en (A AND D) OR (B AND D) OR (C AND D) entonces puedes usar la siguiente 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

El AND static no es necesario aquí porque todas las filas lo devuelven, pero en un ejemplo más complejo (donde también devuelve algunas filas que no son estáticas), entonces tendría que hacerlo de esta manera.