mysql - 如何按大于 DATE(NOW()) 的日期列排序?
问题描述
我有 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 |
+----+------------+--------+
类似:ORDER BY CASE WHEN date_end
> DATE(NOW()) THEN 1 ELSE 2 END
解决方案
然后完全按照您的建议进行操作:
ORDER BY CASE WHEN date_end > curdate() THEN 1 ELSE 0 END
推荐阅读
- r - 我可以用其他逗号分隔一个字符吗?
- logging - stackdriver-metadata-agent-cluster-level 被 OOMKilled
- jvm - 当 joda 时间达到闰日时,jvm 去优化会占用 CPU
- angular-material - 在Angular Material Datepicker中更改标题日期格式
- ssl - 为 wso2 esb API 和 EndPoint 启用统计信息时出错
- c - C 代码不断闪烁错误,想知道我是否可以在这里得到帮助?
- flutter - Flutter:提出了按钮宽度问题
- aws-api-gateway - 用于在网站上显示表格的 AWS API Gateway 模型架构
- python - Django 动态 URL 树
- php - 为什么 htmlentities 在我的 Autosdb 代码中不起作用?