Страницы

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

пятница, 20 декабря 2019 г.

Подскажите с сортировкой в SQL-запросе

#mysql


Есть не совсем "правильный" sql-запрос:
SELECT * FROM `products` ORDER BY `quantity` DESC, `position`

поле quantity - числовое значение от 0 до нескольких сотен - хранит остаток товара
на складе; поле position - внутренняя сортировка товара - чем меньше значение в нем,
тем товар должен выводиться в каталоге раньше относительно других.
Как переписать этот запрос таким образом, чтобы в начале списка шли все товары у
которых ненулевое количество на складе (quantity != 0), отсортированные по полю position,
а потом товары с нулевым количеством на складе? (если можно это сделать одним запросом)    


Ответы

Ответ 1



Используйте CASE в предложении ORDER BY. Примерно так SELECT * FROM `products` ORDER BY case when `quantity`!=0 then 0 else 1 end, `position`

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

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