SELECT id, name
FROM mytable
WHERE name IN ('B', 'A', 'D', 'E', 'C')
ORDER BY FIELD(name, 'B', 'A', 'D', 'E', 'C')
Il FIELD La funzione restituisce la posizione della prima stringa nell'elenco di stringhe rimanenti.
Tuttavia, dal punto di vista delle prestazioni, è molto meglio avere una colonna indicizzata che rappresenti il tuo ordinamento e quindi ordinare in base a questa colonna.