Страницы

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

пятница, 29 ноября 2019 г.

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

#mysql #sql


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


Ответы

Ответ 1



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

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

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