@usver12345

Как сортировка mysql по нескольким полям?

Никак не могу найти в инете ответа на свой вопрос, вот пишу сюда.
Создаю локальную доску объявлений (для нужд организации) и вот встал вопрос по сортировке объявлений.
Постановка задачи такая:
Есть объявления из разных городов, в условиях поиска пользователь выбирает несколько городов, которые его интересуют.
Мне нужно одним запросом вывести объявления этих городов, регионов, фед. округов на самый верх, причем отсортированные по дате, да еще закрепить на верху списка определенные объявления отсортированные по дате.
Причем если под условия сортировки не попадает ни одна строка таблицы, то ниже должны идти объявления отсортированные по дате.
Приведу сокр. поля таблицы для наглядности:
id tid, rid, fid, at,fix
где:
id - идентификатор объявления;
tid - идентификатор города;
rid - идентификатор региона;
fid - идентификатор фед. округа;
at - дата поданного объявления;
fix - дата закрепленного объявления;

Запрос вот такого вида не помогает:
order by fix DESC,
tid=1 DESC,
tid=2 DESC,
tid=3 DESC,
tid=4 DESC,
rid=22 DESC,
fid=7 DESC,
at DESC

Запрос который я привел выше, последовательно сортирует по городу, выводит в том порядке как указаны города в запросе с сортировкой по дате в рамках города.
А мне нужно, что бы сортировка по дате была среди выбранных городов, а не только в разрезе этих городов (обособленно от всего запроса)
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы