Gebruik MySQL's FIELD()
functie:
SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])
FIELD()
zal de index van de eerste parameter teruggeven die gelijk is aan de eerste parameter (anders dan de eerste parameter zelf).
FIELD('a', 'a', 'b', 'c')
zal 1 teruggeven
FIELD('a', 'c', 'b', 'a')
zal terugkeren 3
Dit zal precies doen wat je wilt als je de id's plakt in de IN()
clausule en de FIELD()
functie in dezelfde volgorde.