如何使用共享相同名称的行中的数据更新表中的 NULL 值?

Barbara Streisand
发布: 2024-11-12 19:43:02
原创
291 人浏览过

How to Update NULL Values in a Table with Data from Rows Sharing the Same Name?

使用同表兄弟的数据更新行

设想一个具有类似于以下结构的表:

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 NULL
4 Test NULL
1 Test3 VALUE3

您的任务是使用具有相同“NAME”的其他行的数据填充 NULL“VALUE”单元格(即“Test”和“Test2”应继承其前辈的值)。期望的结果是:

ID NAME VALUE
1 Test VALUE1
2 Test2 VALUE2
1 Test2 VALUE2
4 Test VALUE1
1 Test3 VALUE3

挑战在于引用同一表中共享特定“NAME”值的行。解决方案涉及使用 JOIN 语句:

UPDATE data_table t, (SELECT DISTINCT ID, NAME, VALUE
                        FROM data_table
                       WHERE VALUE IS NOT NULL AND VALUE != '') t1
   SET t.VALUE = t1.VALUE
 WHERE t.ID = t1.ID
   AND t.NAME = t1.NAME
登录后复制

在此语句中,子查询 (T1) 提取具有非 NULL 和非空“VALUE”值的不同行。然后,主查询 (t) 在“ID”和“NAME”字段上与此子查询连接,以标识要更新的行。因此,空的“VALUE”单元格将填充具有相同“NAME”值的非空行中的相应值。

以上是如何使用共享相同名称的行中的数据更新表中的 NULL 值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板