Gunakan FIELD()
fungsi:
SELECT name, description, ...
FROM ...
WHERE id IN([ids, any order])
ORDER BY FIELD(id, [ids in order])
FIELD()
akan mengembalikan indeks parameter pertama yang sama dengan parameter pertama (selain parameter pertama itu sendiri).
FIELD('a', 'a', 'b', 'c')
akan mengembalikan 1
FIELD('a', 'c', 'b', 'a')
akan mengembalikan 3
Ini akan melakukan apa yang Anda inginkan jika Anda menempelkan id ke IN()
klausa dan FIELD()
berfungsi dalam urutan yang sama.