MySQLには`WHERE col IN (..) ORDER BY FILED(col, ..)`という書き方でINに並べた順番にソートしなおせるという知見がある。 こんなテーブルがあって、 mysql56> SELECT * FROM t1; +-----+-------+ | num | val | +-----+-------+ | 1 | one | | 2 | two | | 3 | three | | 4 | four | | 5 | five | | 6 | six | | 7 | seven | | 8 | eight | | 9 | nine | | 10 | ten | +-----+-------+ 10 rows in set (0.00 sec) INにテキトーな値を並べてやっても、 mysql56> SELECT * FROM t1 WHERE num IN