Страницы

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

воскресенье, 15 декабря 2019 г.

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

#mysql #sql #база_данных #mysqli


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


Ответы

Ответ 1



Можно воспользоваться функцией 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')

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

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