Diese Frage bezieht sich auf meine vorherige Frage - MySQL query to show records with current date on top and others as per descending order. Die Abfrage i verwende jetzt,MySQL-Abfrage, um Datensätze zu bestellen ORDER BY
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
und die zurückgegebenen Ergebnisse sind wie folgt,
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
aber jetzt bin ich mit einem anderen Problem stecken, und ich brauche die die Datensätze zu sortieren, wie unten gezeigt -
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
hatte ich versucht, ASC
statt DESC
in der Abfrage verwenden, aber dann die abgelaufenen Termine sind nur nach dem heutigen Datum aufgeführt. Ich brauche die Zukunftstermine nach dem heutigen Datum und danach nur noch die abgelaufenen Termine. Wie kann dies umgesetzt werden?
Brauchen Sie Hilfe. Vielen Dank im Voraus
Danke noch einmal, dass der Zweck erfüllt. –