Funkce FIND_IN_SET to udělá
SELECT * FROM table_name WHERE id IN (1, 3, 2, 9, 7) ORDER BY FIND_IN_SET(id, '1,3,2,9,7');
http://dev.mysql .com/doc/refman/5.0/en/string-functions.html#function_find-in-set
EDIT:Všimněte si nedostatku mezer v argumentu řetězce funkce find_in_set.