@alexeyfedotof
front-end как хобби

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

Делаю запрос к базе на выборку товаров по id, причем id следуют в определенном порядке. Например, часть запроса FROM oc_product p WHERE p.product_id IN ('574','572','573'). В ответ получаю отсортированный массив. Мне надо получить массив с таким же порядком id, как и в запросе. Обработку на php полученного массива уже реализовал. Интересует можно ли сохранить порядок следования id именно запросом sql.
  • Вопрос задан
  • 271 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
ORDER BY FIELD(`p`.`product_id`, 574, 572, 573)
Но, как и при любом использовании функции, индексы работать не будут.
И ещё, если в IN() или FIELD() все аргументы численные, то идёт численное сравнение, если хоть один аргумент строковый, то все сравнения будут строковые, что работает медленнее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Smithson
@Smithson
20+ лет админю
Если в sql-запросе порядок сортировки явно не указан, то порядок возвращения значений не определен.
Что у вас там в базе следуют в определенном порядке - рояля не играет. Сервер вернёт так, как ему в этот момент удобнее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы