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

¿Cómo definir un pedido personalizado en la cláusula ORDER BY?

Utilice la función CAMPO:-

SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 1, 67, 78, 57)

EDITAR:si no se encuentra, devolverá 0, por lo que si desea ordenar 2 valores primero, posiblemente solo tenga esos 2 en la función pero invertidos y ordenados descendentemente.

SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 67, 1) DESC

Esto pondrá la categoría 1 primero, la categoría 67 después, seguida de cualquier otra