http://stackoverflow.com/questions/1631723/maintaining-order-in-mysql-in-query
mysql 의 in 절을 이용해서 query를 하면 in 절의 파라미터 순서대로 조회가 되지 않는 경우가 발생한다ㅠㅜ
이 부분을 in 절의 파라미터 순서에 맞게 하려면 아래와 같은 쿼리로 조회하면 가능하다.
SELECT * FROM foo f where f.id IN (2, 3, 1) ORDER BY FIELD(f.id, 2, 3, 1);
sequelize.js 에서 위 쿼리를 어떻게 날릴까 고민을 하다가 다행이 잘 지원을 한다. 아래를 참고하자.
var ids = [2, 3, 1]
Foo.findAll({where: {id: {in: ids}}, order: [
[sequelize.fn.apply(sequelize, ['field', sequelize.col('id')].concat(ids))]
]}).done(function(err, rows) {
...
})