Всем привет, дописывал скрипт, сделал вывод нужных мне ID с помощью оператора IN (5,6,3,21,6,31,34), скрипт был не трудный, поэтому писал на автомате, в итоге получил ошибки, долго разбирался в чем дело и обнаружил что оператор IN сортирует записи не в том порядке, в котором мы у него запрашиваем 5,6,3,21,31,34 а по тому как они находятся в базе 3,5,6,21,31,34 эту особенность я никогда ранее не встречал.
Есть отличное решение данной проблемы, вот как должен выглядеть запрос к базе:
select id,title from tbl_name where IN(5,3,21,6,31,34) ORDER BY find_in_set(id,"5,3,21,6,31,34");
С помощью оператора find_in_set мы в ручном порядке указываем сортировку, обратите внимание что пробелов после функции быть не должно.