我有一个 date_end 列,我需要对其进行排序,其中仅对日期大于今天的顶行很重要。
所以给出大于今天的日期 = "1",小于今天 = "0"并对其进行排序。
所以有下面的数据表:
+----+------------+
| id | date_end |
+----+------------+
| 1 | 31-01-2018 |
+----+------------+
| 2 | 01-05-2019 |
+----+------------+
| 3 | 31-05-2018 |
+----+------------+
| 4 | 31-07-2019 |
+----+------------+
| 5 | 31-04-2020 |
+----+------------+
| 6 | 31-08-2019 |
+----+------------+
我需要虚拟地添加“实际”列并按它排序:
+----+------------+--------+
| id | date_end | actual |
+----+------------+--------+
| 1 | 31-01-2018 | 0 |
+----+------------+--------+
| 2 | 01-05-2019 | 0 |
+----+------------+--------+
| 3 | 31-05-2018 | 0 |
+----+------------+--------+
| 4 | 31-07-2019 | 1 |
+----+------------+--------+
| 5 | 31-04-2020 | 1 |
+----+------------+--------+
| 6 | 31-08-2019 | 1 |
+----+------------+--------+
类似于:
按情况排序 WHEN date_end
> DATE(NOW()) THEN 1 ELSE 2 END
最佳答案
然后完全按照你的建议做:
ORDER BY CASE WHEN date_end > curdate() THEN 1 ELSE 0 END
关于mysql - 如何按大于 DATE(NOW()) 的列日期排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56743602/