Puoi farlo usando FIND_IN_SET , ad es.
SELECT * FROM T WHERE T.id IN(4,78,12,45)
ORDER BY FIND_IN_SET(T.id,'4,78,12,45');
Anche se devi duplicare l'elenco, se stai generando la query nel codice questo non è un grosso problema.
Puoi farlo usando FIND_IN_SET , ad es.
SELECT * FROM T WHERE T.id IN(4,78,12,45)
ORDER BY FIND_IN_SET(T.id,'4,78,12,45');
Anche se devi duplicare l'elenco, se stai generando la query nel codice questo non è un grosso problema.