Как выбрать строки с помощью оператора 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)
Комментариев нет:
Отправить комментарий