Použijte funkci FIELD:-
SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 1, 67, 78, 57)
EDIT – Pokud nebude nalezena, vrátí 0, takže pokud chcete nejprve seřadit 2 hodnoty, pak možná stačí mít tyto 2 ve funkci, ale obrácené a seřadit sestupně.
SELECT *
FROM articles
WHERE article.category IN (1, 57, 67, 78)
ORDER BY FIELD(article.category, 67, 1) DESC
Tím bude na první místo zařazena kategorie 1, poté kategorie 67, následovaná všemi ostatními