Ответ 1
ORDER BY field(id, 9, 1, 4);
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_field
Мне нужно запустить MySQL-запрос, где порядок определяется значением массива.
Мой массив является переменным, но значения в массиве соответствуют полю в моей таблице БД с именем "ID", поэтому я хочу, чтобы результат возвращался в порядке идентификатора 9, 1, 4.
Array ( [0] => 9 [1] => 1 [2] => 4 )
Возможно ли это в MySQL или можно будет отсортировать результат MySQL $с помощью массива после? Вы можете предположить, что возвращаемые значения возвращаются только в массиве.
ORDER BY field(id, 9, 1, 4);
http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_field
Вы хотите получить список элементов с идентификаторами 5, 2, 1, 3
и вывести их в том же порядке. Однако просто запуск запроса select возвращает элементы в порядке 1, 2, 3, 5
.
Чтобы правильно упорядочить результаты, вам нужно создать список элементов ORDER BY
, описывающих веса идентификаторов. Это будет выглядеть как
ORDER BY id = 5 DESC, id = 2 DESC, id = 1 DESC, id = 3 DESC
Перейдите в эту ссылку, чтобы получить подробную информацию.