Подтвердить что ты не робот

MySQL - SELECT... WHERE id IN (..) - правильный порядок

У меня есть следующий запрос

SELECT * FROM table WHERE id IN (5,4,3,1,6)

и я хочу получить элементы в порядке, указанном в "id in..", что означает, что он должен вернуться:

5 ....
4 ....
3 ....
1 ....
6 ....

Любые идеи, как это сделать?

4b9b3361

Ответ 1

Используйте FIELD():

SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD(id, 5,4,3,1,6);

Ответ 2

SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD (id, 5,4,3,1,6)

Ответ 3

Если кто-то все еще ищет, я просто нашел его.

SELECT * FROM `table` WHERE `id` IN (4, 3, 1) ORDER BY FIELD(`id`, 4, 3, 1)

И ссылку для функции, которую вы можете найти ЗДЕСЬ

Ответ 4

Ну, вам нужно создать Id для каждого из id так:

id | otherid

1 = 5 2 = 4 3 = 3 4 = 1 6 = 6

используя IN-ЗАЯВЛЕНИЕ, только смотрит, находятся ли эти значения в списке, не заказывает их в каком-либо конкретном порядке