Jeg troede ikke, det var muligt, men fandt et blogindlæg her der ser ud til at gøre den type ting, du leder efter:
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
vil give forskellige resultater til
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
returnerer positionen for id
i det andet argument givet til det, så for det første tilfælde ovenfor, id
af 7 er på position 1 i sættet, 2 på 2 og så videre - mysql fungerer internt noget som
id | FIND_IN_SET
---|-----------
7 | 1
2 | 2
5 | 3
derefter sorteres efter resultaterne af FIND_IN_SET
.