Порядок записей в запросе MySQL с использованием WHERE ***** IN (*,*,*,*)

Всем привет!

Однажды заинтересовала меня произвольная сортировка результата выполнения запроса к MySQL.

По умолчанию MySQL возвращает результаты в порядке «Primary index».

Если же вам надо вернуть записи именно в том порядке в котором они указаны в WHERE *** IN (*,*,*) выражении, можно использовать конструкцию FIND_IN_SET например так:

SELECT * FROM table WHERE id IN (118,17,113,23,72)
ORDER BY FIND_IN_SET(id, '118,17,113,23,72');

Теперь MySQL вернет записи в нужном нам порядке.

Добавить комментарий

Ваш адрес email не будет опубликован.