У меня есть следующий запрос
SELECT * FROM table WHERE id IN (5,4,3,1,6)
, и я хочу получить элементы в порядке, указанном в «id in ..», что означает, что он должен вернуть:
5 .... 4 .... 3 .... 1 .... 6 ....
Есть идеи как это сделать?
Использование ПОЛЯ () :
SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD(id, 5,4,3,1,6);
SELECT * FROM table WHERE id IN (5,4,3,1,6) ORDER BY FIELD (id, 5,4,3,1,6)
На случай, если кто-то все еще ищет, я только что нашел его.
SELECT * FROM `table` WHERE `id` IN (4, 3, 1) ORDER BY FIELD(`id`, 4, 3, 1)
И ссылку на функцию вы можете найти ЗДЕСЬ
Что ж, вам нужно будет создать идентификатор для каждого из идентификаторов, так:
id |otherid
1 = 5 2 = 4 3 = 3 4 = 1 6 = 6
с использованием IN STATEMENT только проверяет, есть ли эти значения в списке, не упорядочивает их в каких-либо конкретныхзаказ