首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用来自同一列的值替换Null值,方法是匹配不同列中的值

用来自同一列的值替换Null值,方法是匹配不同列中的值
EN

Database Administration用户
提问于 2018-10-18 23:21:22
回答 1查看 234关注 0票数 1

我在“date”列中有一个空值的表:

代码语言:javascript
复制
platform   date         id
---------------------------
web        2018-10-10   1
mob                     1
mob                     1
web        2018-10-15   2
mob                     2
ntl        2018-10-09   3
web        2018-10-12   3
web        2018-10-11   4
mob                     3

我希望通过匹配平台'web‘中的'id’列来更新'mob‘平台的'date’中的空值。结果应该如下所示:

代码语言:javascript
复制
platform   date         id
---------------------------
web        2018-10-10   1
mob        2018-10-10   1
mob        2018-10-10   1
web        2018-10-15   2
mob        2018-10-15   2
ntl        2018-10-09   3
web        2018-10-12   3
web        2018-10-11   4
mob        2018-10-12   3

会很感激你的帮助!

EN

回答 1

Database Administration用户

发布于 2018-10-19 05:30:55

代码语言:javascript
复制
UPDATE `table` t1, `table` t2
SET t1.`date` = t2.`date`
WHERE t1.id = t2.id
  AND t1.platform = 'mob'
  AND t2.platform = 'web'
  AND t1.`date` IS NULL
  AND t2.`date` IS NOT NULL

PS。该解决方案假定在匹配platform = 'web' AND t2.`date` IS NOT NULL条件的表的子数组中,id值是唯一的。否则,将使用可能值列表中的随机值,您必须使用子查询,而不是t2表副本,后者根据platform = 'web'条件筛选数据,按id对数据进行分组,并为每个id值选择单独的data值(例如,最大值)。如果您的MySQL版本是8+,您可以在WITH子句中这样做。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/220529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档