Use el FIELD()
función:
SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])
CAMPO()
devolverá el índice del primer parámetro que es igual al primer parámetro (que no sea el primer parámetro en sí).
CAMPO('a', 'a', 'b', 'c')
devolverá 1
CAMPO('a', 'c', 'b', 'a')
devolverá 3
Esto hará exactamente lo que desea si pega las identificaciones en IN()
cláusula y el FIELD()
funcionan en el mismo orden.