Страницы

Поиск по вопросам

четверг, 25 октября 2018 г.

Как получить ответ на запрос sql к базе без сортировки результата? [дубликат]

На данный вопрос уже ответили: MySQL: сортировка выборки в порядке, заданном в операторе IN 1 ответ Делаю запрос к базе на выборку товаров по id, причем id следуют в определенном порядке. Например, часть запроса FROM oc_product p WHERE p.product_id IN ('574','572','573'). В ответ получаю отсортированный массив. Мне надо получить массив с таким же порядком id, как и в запросе. Обработку на php полученного массива уже реализовал. Интересует можно ли сохранить порядок следования id именно запросом sql.


Ответ

Можно воспользоваться функцией FIELD(), передав ей точно такую же последовательность, которую вы задаете в IN. Функция будет возвращать индекс значения в последовательности и по нему можно отсортировать выборку конструкцией ORDER BY
SELECT * FROM oc_product p WHERE p.product_id IN ('574','572','573') ORDER BY FIELD(p.product_id, '574','572','573')

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

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