У меня есть таблица объявлений.Там у меня есть две даты.Вы можете поставить adv и добавить опцию, чтобы показать топ в списке.Я создал top_list_end_date, и я могу сделать заказ к этой дате просто.это другая дата up_date, если ваш рекламный объявление находится на второй странице или снизу, вы можете обновить дату и выглядит так, будто новый рекламный лист должен быть в верхней части списка.
SELECT id, up_date, top_list_end_date
FROM advertisements
ORDER BY top_list_end_date desc, up_date desc;
Но это не работает. Я хотел бы, чтобы ID объявления 202 был первым в результатах, потому что up_date выше.Как я могу сделать это в одном sql?
ОБНОВЛЕННЫЙ ответ Спасибо всем за помощь.Благодаря вам я нашел ответ:
SELECT *
FROM (
SELECT 1 as own, id, up_date , top_list_end_date FROM advertisements WHERE top_list_end_date > now()
UNION ALL
SELECT 2 as own, id, up_date, top_list_end_date FROM advertisements WHERE top_list_end_date IS NULL
) a
order by own, up_date desc
результат
У меня есть две группы.Сначала с top_list_end_date, затем без этой даты.Обе группы должны быть отсортированы только по up_date, но я хочу показать первую группу № 1 (top_list_end_date) и ниже группы 2 все остальные.
, как вы можете видеть, 197 - первая причина, по которой существует top_list_end_date, а up_date самая высокая.и то же самое во второй группе с идентификатором 213 до даты наивысшего.
:) Еще раз спасибо