我有一个日期列,其中包含日期值或null。我用它来保存产品的到期日期。我想编写一个查询来按以下顺序获取它们:尚未过期,没有过期(空),并且已经过期。
例如,假设今天是5月15日:
prd_id prd_name Expiry Date
-----------------
1 name1 May 16
2 name2 May 17
3 name3 May 18
4 name4 May 21
5 namex null
6 namex null
7 namex null
8 namex May 14
9 namex May 12
(空值表示没有到期)
我该怎么做?
最佳答案
您可以尝试以下语法:
SELECT *
FROM YOUR_TABLE
ORDER BY CASE WHEN expire_date > CURDATE() THEN 1 END,
WHEN expire_date IS NULL THEN 2 Desc END,
WHEN expire_date < CURDATE() THEN 3 Desc END;
关于php - MySQL中日期的混合排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29943188/