Как Вы сохраняете порядок с помощью ВЫБОРА ГДЕ В ()?

Существует ли способ сохранить порядок при использовании ВЫБОРА ГДЕ В ()? Например, с помощью следующего запроса:

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

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

То, когда я хочу сохранить порядок, использовало в В: 56,55,54,1,7

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

Спасибо :)

16
задан OMG Ponies 26 July 2010 в 01:53
поделиться

2 ответа

Используйте FIND_IN_SET :

ORDER BY FIND_IN_SET(id, '56,55,54,1,7')
41
ответ дан 30 November 2019 в 16:04
поделиться

Вы можете выполнить UNION, который может вернуть заказ таким же образом.

НО:

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

0
ответ дан 30 November 2019 в 16:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: