Saya tidak berpikir ini mungkin, tetapi menemukan entri blog di sini yang sepertinya melakukan hal yang Anda cari:
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
akan memberikan hasil yang berbeda untuk
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
FIND_IN_SET
mengembalikan posisi id
dalam argumen kedua yang diberikan padanya, jadi untuk kasus pertama di atas, id
dari 7 berada di posisi 1 di set, 2 di 2 dan seterusnya - mysql secara internal bekerja seperti
id | FIND_IN_SET
---|-----------
7 | 1
2 | 2
5 | 3
lalu order dengan hasil FIND_IN_SET
.