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

Como definir um pedido personalizado na cláusula ORDER BY?


Use a função CAMPO:-
SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 1, 67, 78, 57)

EDITAR - Se não for encontrado, ele retornará 0, portanto, se você quiser 2 valores classificados primeiro, possivelmente apenas tenha esses 2 na função, mas invertidos e ordenando decrescente.
SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 67, 1) DESC

Isso colocará a categoria 1 primeiro, a categoria 67 depois, seguida por quaisquer outras