mysql - 在表中添加一列以计算 MySQL 的最早日期
问题描述
我有一张这样的桌子:
表名
列: [id,date1,date2,date3,date4,date5]
(有些值为 NULL)
我想添加一列来计算每一行的 date1 到 date5 之间的最早日期,即
输出列: [id, date1, date2, date3, date4, date5, early_date]
我怎样才能做到这一点?
解决方案
您可以使用 LEAST 将空值合并到遥远的未来日期。
DROP TABLE IF EXISTS T;
create table t (id int , d1 date,d2 date,d3 date);
insert into t values
(1,'2021-01-15','2021-01-16','2021-01-13'),
(2,null,'2021-01-22','2021-01-13');
select id, least(coalesce(d1,'2199-01-01'),
coalesce(d2,'2199-01-01'),
coalesce(d3,'2199-01-01'))
from t;
推荐阅读
- c++ - 如何在 for 循环中编写此表?
- java - 使用 vscode 远程调试 java 云应用
- python - 无法嗅探以太网类型 0x0102 自定义数据包
- php - 警告:mysql_fetch_array() 期望参数 1 是资源... - 为什么?
- c - 不使用 strlen() 函数计算字符串的长度
- c++ - 在取消引用向量时遇到问题
- indexing - 当一行被删除时,它不是物理删除,而是标记为已删除。太极数据
- vue.js - 在 Vue.js 中从 index.html 调用组件
- angular - Firebase 电子邮件验证电子邮件问题
- javascript - 传递带参数的函数时未触发单击事件