powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хитрая сортировка
10 сообщений из 10, страница 1 из 1
Хитрая сортировка
    #38830367
V2oD2o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем!

Есть БД, в ней куча полей, но 2 важных для сортировки..
1. поле price
2. поле count

Вот выборка из бд с сортировкой по ценнику:
SELECT `count`, `price` FROM `catalog` WHERE `price`>0 ORDER by `price`;

Задача: сортировка по цене, но вверху должны быть поля в которых count>0, ниже все остальные которые count=0 отсортированные по цене..

Круил вертел, не получается одним запросом..
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38830383
V2oD2o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Разобрался:
SELECT * FROM (SELECT `count`, `price`
FROM `catalog` WHERE `price`>0 ORDER by `price` LIMIT 0, 20) a ORDER BY `count` DESC
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38830426
V2oD2o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не. не то.. буду в 2 запроса делать.
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38830445
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V2oD2oЗадача: сортировка по цене, но вверху должны быть поля в которых count>0, ниже все остальные которые count=0 отсортированные по цене..
Код: sql
1.
ORDER BY `count`=0, `price`
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38830460
V2oD2o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там немного сложенее, надо чтоб выводило сортированные count>0 и count=0

(SELECT * FROM (SELECT price,count FROM catalog WHERE count>0 AND price>0 ORDER BY price) a ORDER by iscount)
UNION
(SELECT * FROM (SELECT price,count FROM catalog WHERE count=0 AND price>0 ORDER BY price) a ORDER by price)

вроде как то так:
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38830583
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V2oD2oТам немного сложенее, надо чтоб выводило сортированные count>0 и count=0

(SELECT * FROM (SELECT price,count FROM catalog WHERE count>0 AND price>0 ORDER BY price) a ORDER by iscount)
UNION
(SELECT * FROM (SELECT price,count FROM catalog WHERE count=0 AND price>0 ORDER BY price) a ORDER by price)

вроде как то так:

может стоит всётаки внимательно почитать овтет?!

написали ведь order by count=0, price

обясняю
сортируеться по двум полям.
первое поле - равно либо 0 либо 1, ибо каунт либо равно либо не равно нулю.
второе поле прайс.
сначала пойдут все записи где каунт равно нулю, с сортировкой по цене, потом все где не равно нулю с сортировкой по цене
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38830611
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453сначала пойдут все записи где каунт равно нулю ... потом все где не равно нулюнаоборот.
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38830638
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
V2oD2o
Код: sql
1.
2.
3.
(SELECT * FROM (SELECT price,count FROM catalog WHERE count>0 AND price>0 ORDER BY price) a ORDER by iscount)
UNION
(SELECT * FROM (SELECT price,count FROM catalog WHERE count=0 AND price>0 ORDER BY price) a ORDER by price)


вроде как то так:Не так. То, что получен верный порядок - счастливая случайность, а не гарантированность. В любой момент имеет право "поломаться".
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38831045
sigmov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
V2oD2o,
Код: sql
1.
.... ORDER BY (count = 0), price DESC


???
...
Рейтинг: 0 / 0
Хитрая сортировка
    #38831279
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
ORDER BY count DESC, price
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Хитрая сортировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]