Verwenden Sie MySQLs FIELD()
Funktion:
SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])
FIELD()
gibt den Index des ersten Parameters zurück, der gleich dem ersten Parameter ist (anders als der erste Parameter selbst).
FIELD('a', 'a', 'b', 'c')
wird 1 zurückgeben
FIELD('a', 'c', 'b', 'a')
wird 3 zurückgeben
Dies wird genau das tun, was Sie wollen, wenn Sie die IDs in IN()
einfügen -Klausel und das FIELD()
Funktion in der gleichen Reihenfolge.