MySQL упорядочивает диапазон дат до начала, затем упорядочивает все остальное по другим критериям - PullRequest
1 голос
/ 04 сентября 2011

У меня есть таблица элементов с полем «Дата создания», и я пытаюсь найти способ упорядочить их так, чтобы элементы, созданные за последние две недели, отображались первыми, а элементы, которые не были созданы в последние две недели появляются после этого, отсортированные по алфавиту.

Я знаю, как сделать это с несколькими SQL-запросами, но я бы предпочел не делать этого, если это возможно. Возможно ли это сделать?

1 Ответ

3 голосов
/ 04 сентября 2011
select * from table
order by
case when date_created > curdate() - interval 2 week then 1 else 2 end,item

ОБНОВЛЕННЫЙ ОТВЕТ

(select * from table
where date_created > curdate() - interval 2 week 
order by date_created desc limit 0,10000000000)
union all
(select * from table
where date_created < curdate() - interval 2 week 
order by item
limit 0,10000000000)

LIMIT необходимо использовать, когда вам нужно применить сортировку asc и desc внутри объединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...