Страницы

Поиск по вопросам

вторник, 9 октября 2018 г.

MySQL: сортировка выборки в порядке, заданном в операторе IN

Как выбрать строки с помощью оператора IN именно в том порядке, в котором они переданы? Т.е. SELECT id, name FROM users WHERE id IN (2, 3, 1)


Ответ

Можно воспользоваться функцией FIELD(), передав ей точно такую же последовательность, которую вы задаете в IN. Функция будет возвращать индекс значения в последовательности и по нему можно отсортировать выборку конструкцией ORDER BY
SELECT id, name FROM users WHERE id IN (2, 3, 1) ORDER BY FIELD(id, 2, 3, 1)

Комментариев нет:

Отправить комментарий