Главная > MySQL > mysql order by int as boolean (true false)

mysql order by int as boolean (true false)

В примере нужно сортировать позиции каталога по наименованию, но вначале товары в наличии — остаток которых больше 0.

SELECT * FROM `catalog` WHERE `hide`='0' ORDER BY IF(`ost`,TRUE,FALSE) DESC, `name` ASC;

upd:
замечено что позиции с остатком меньше 0 все равно попадают в начало списка.
Другой вариант:

SELECT * FROM `catalog` WHERE `hide`='0' ORDER BY `ost`>0 DESC, `name` ASC;
Categories: MySQL Tags:
  1. Пока что нет комментариев.
Похожие публикации