MySQL, сортировка в произвольном порядке (in и сортировка)
Задача такая: выдать все строки таблицы с id, входящим во множество (13, 15, 14, 29, 11), и к тому же именно в таком порядке. Недавно обнаружил, что в MySQL есть оператор, решающий именно эту задачу
Для этого используется функция find_in_set:
select * from records where id in (13, 15, 14, 29, 11) order by find_in_set(id, "13,15,14,29,11")
Важно! Второй аргумент find_in_set не должен содержать пробелов
P.S. Только закончив этот пост, нашёл ещё одну функцию для этих целей в этой замечательной статье:
SELECT * FROM articles ORDER BY FIELD(a_season, "весна","лето","осень","зима")
Ваш комментарий
Комментарии