この質問は私の前の質問 - MySQL query to show records with current date on top and others as per descending orderに関連しています。次のように私は今、MySQLのクエリレコードを注文する
SELECT b.sales_id,b.category_id,b.sale_starts,b.sale_ends
FROM tbl_sales b WHERE b.active=1
UNION
SELECT b.sales_id,b.category_id,b.sale_starts,b.sale_ends
FROM tbl_sales b INNER JOIN tb_category c ON b.category_id=c.cat_id
WHERE c.cat_keyword LIKE 'a'
ORDER BY IF(sale_ends = DATE(NOW()), 0, 1), sale_ends DESC
を使用して、結果が返されるクエリは、
sales_id | category_id |sale_starts | sale_ends
----------|---------------------|------------|--------------
4 | 12 | 2012-04-05 | 2012-04-11 (today's date)
1 | 10 | 2012-03-31 | 2012-04-30
2 | 11 | 2012-03-22 | 2012-04-27
3 | 25 | 2012-03-31 | 2012-04-25
5 | 18 | 2012-04-05 | 2012-04-09
6 | 20 | 2012-02-23 | 2012-02-27
7 | 14 | 2012-02-25 | 2012-02-26
である。しかし、今、私は別の問題で立ち往生していると私は、以下に示すようにレコードをソートする必要があります -
sales_id | category_id |sale_starts | sale_ends
----------|---------------------|------------|--------------
4 | 12 | 2012-04-05 | 2012-04-11 (today's date)
3 | 25 | 2012-03-31 | 2012-04-25
2 | 11 | 2012-03-22 | 2012-04-27
1 | 10 | 2012-03-31 | 2012-04-30
7 | 14 | 2012-02-25 | 2012-02-26 (expired/past dates)
6 | 20 | 2012-02-23 | 2012-02-27
5 | 18 | 2012-04-05 | 2012-04-09
私は、クエリ内のASC
の代わりDESC
を使用してみましたが、その後期限切れの日はちょうど今日の日付の後に記載されています。私は、今日の日付の後にリストアップされる将来の日付を必要とし、その後は期限切れの日付しか必要としない。これはどのように実装できますか?
ヘルプが必要です。事前に感謝します
もう一度、この目的に役立ちました。 –