Как вы сохраняете порядок, используя SELECT WHERE IN ()?

есть ли способ сохранить порядок при использовании SELECT WHERE IN ()? Например, используя следующий запрос:

SELECT id FROM data_table WHERE id IN(56,55,54,1,7);

результаты вернутся, используя порядок по умолчанию по id. 1,7,54,55,56

когда я хочу сохранить порядок, используемый в IN: 56,55,54,1,7

есть ли быстрый способ сделать это в mySQL или я буду вынужден заказать его после в коде.

спасибо :)

3 ответов


использовать FIND_IN_SET:

ORDER BY FIND_IN_SET(id, '56,55,54,1,7')


вы можете сделать союз, который может вернуть заказ таким же образом.

но:

Почему бы просто не переупорядочить результаты вашего приложения, когда оно их получает, а не заставлять DB делать это?