SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')
El FIELD La función devuelve la posición de la primera cadena en la lista restante de cadenas.
Sin embargo, es mucho mejor en términos de rendimiento tener una columna indexada que represente su orden de clasificación y luego ordenar por esta columna.