请帮忙。这是我的mySQL查询
SELECT *
FROM (`products`)
ORDER BY (
CASE WHEN `ExpiredDate` > NOW()
THEN 1
ELSE 0
END) DESC , `ExpiredDate` ASC
我要将数组结果排序为可用的产品:
12-10-2013 12-15-2013 12-28-2013 12-09-2013 -- Today 12-08-2013 12-04-2013 12-01-2013
但是目前的结果是现在过期的产品按照这样的升序排序:
12-10-2013 12-15-2013 12-28-2013 12-09-2013 -- Today 12-01-2013 12-04-2013 12-08-2013
答案 0 :(得分:1)
这应该可以解决问题:
SELECT * FROM products
ORDER BY ExpiredDate < NOW(), ABS(TIMESTAMPDIFF(SECOND, expiredDate, NOW()))
小提琴here
答案 1 :(得分:1)
您应该使用以下查询而不是您的
SELECT *
FROM(products
)
订购(
DATE_FORMAT时的情况(ExpiredDate,'%Y-%m-%d')&gt;现在()
然后1
ELSE 0
END)DESC,ExpiredDate
ASC