Сортировка оператор IN mysql

Всем привет, дописывал скрипт, сделал вывод нужных мне 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 мы в ручном порядке указываем сортировку, обратите внимание что пробелов после функции быть не должно.

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

Еще нет комментариев.

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

Войти с помощью: 
Вы должны войти чтобы оставить комментарий.