SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')
FIELD funktion returnerar positionen för den första strängen i den återstående listan med strängar.
Det är dock mycket bättre prestandamässigt att ha en indexerad kolumn som representerar din sorteringsordning och sedan sortera efter denna kolumn.