Как исключить некоторые значения при сортировке с MySQL? - PullRequest
7 голосов
/ 26 сентября 2011

У меня есть такая таблица:

id products_name sort
1   abc           0 
2   xyz           1
3   pqr           2
4   qwe           0

Я хочу отсортировать записи по столбцу sort в порядке возрастания, но я не хочу, чтобы строки с 0 вверху внабор результатов.
Строки, имеющие 0 в столбце sort, должны находиться внизу набора результатов, а остальные строки должны быть отсортированы в порядке возрастания с использованием столбца sort.

Как мне это сделать?

Ответы [ 2 ]

11 голосов
/ 26 сентября 2011

Вы можете попробовать что-то вроде:

ORDER BY IF(SORT=0, 999999999, SORT)
6 голосов
/ 26 сентября 2011

Вы можете использовать оператор ORDER BY IF:

SELECT *
FROM table
ORDER BY IF(SORT = 0, 999999999, SORT)

или вы можете использовать оператор UNION ALL для достижения этого:

(SELECT * FROM table WHERE sort > 0 ORDER BY sort)
UNION ALL
(SELECT * FROM table WHERE sort = 0)
...