Použijte FIELD()
funkce:
SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])
FIELD()
vrátí index prvního parametru, který je roven prvnímu parametru (jiný než samotný první parametr).
FIELD('a', 'a', 'b', 'c')
vrátí 1
FIELD('a', 'c', 'b', 'a')
vrátí 3
To udělá přesně to, co chcete, pokud vložíte ID do IN()
klauzule a FIELD()
fungovat ve stejném pořadí.