MySQL. Как сохранить порядок выборки при условии IN()?


Рассмотрим короткий пример, как сохранить порядок выборки MySQL при запросе с условием IN.

Итак, допустим мы имеем запрос:

SELECT * from users WHERE id IN(2, 5, 7, 3, 15, 4);

MySQL, вероятнее всего вернёт выборку в отсортированном по полю id виде или же в каком-то третьем, зависимо от настроек.

Чтобы результаты были именно в порядке 2, 5, 7, 3, 15, 4 используйте следующий запрос:

SELECT * from users WHERE id IN(2, 5, 7, 3, 15, 4) ORDER BY FIELD(id, 2, 5, 7, 3, 15, 4);

Обратите внимание на конструкцию ORDER BY — именно она обеспечит нам ожидаемый результат.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *