Utilisez le FIELD()
fonction :
SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])
CHAMP()
renverra l'index du premier paramètre qui est égal au premier paramètre (autre que le premier paramètre lui-même).
CHAMP('a', 'a', 'b', 'c')
renverra 1
CHAMP('a', 'c', 'b', 'a')
renverra 3
Cela fera exactement ce que vous voulez si vous collez les identifiants dans le IN()
clause et le FIELD()
fonctionnent dans le même ordre.