1
我有一個包含「創建日期」字段的項目表,並且我試圖找出一種方法來訂購它們,以便項目在過去兩週內創建的項目首先出現,並且在過去兩週內未創建的項目出現在此之後,按字母順序排序。MySQL將日期範圍排序到開頭,然後按其他條件排序所有其他條件
我知道如何做到這一點與多個SQL查詢,但我寧願不這樣做,如果可能的話。是否有可能做到這一點?
我有一個包含「創建日期」字段的項目表,並且我試圖找出一種方法來訂購它們,以便項目在過去兩週內創建的項目首先出現,並且在過去兩週內未創建的項目出現在此之後,按字母順序排序。MySQL將日期範圍排序到開頭,然後按其他條件排序所有其他條件
我知道如何做到這一點與多個SQL查詢,但我寧願不這樣做,如果可能的話。是否有可能做到這一點?
select * from table
order by
case when date_created > curdate() - interval 2 week then 1 else 2 end,item
修訂ANSWER
(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聯盟內部排序。
很好,謝謝! – Jake
其實,我需要添加什麼來排序第一部分?就像我想在創建日期之前對2周的日期範圍內的項目進行排序一樣。 – Jake
我已經更新了我的答案。 –