Mysql 如何将列中的条目克隆到具有相同ID的所有列?

Mysql 如何将列中的条目克隆到具有相同ID的所有列?,mysql,sql,Mysql,Sql,我希望在id相同的情况下克隆数据库中的一个条目 每一行都有自己的ID,然后是一个单独的列,用于我要复制的条目。我正在尝试查找此列中包含数据的任何条目,并将其克隆到具有相同ID的任何其他行 例如: ID COLUMNNAME 1 Test 1 1 2 2 Test 2 3 3 在这种情况下,测试1将克隆到下面的行,测试2将克隆到上面的行,而ID 3将保持空白 我有: 选择'columnname','id` 从`表` 其中“columnn

我希望在id相同的情况下克隆数据库中的一个条目

每一行都有自己的ID,然后是一个单独的列,用于我要复制的条目。我正在尝试查找此列中包含数据的任何条目,并将其克隆到具有相同ID的任何其他行

例如:

ID      COLUMNNAME
1       Test 1
1      
2       
2       Test 2
3
3
在这种情况下,测试1将克隆到下面的行,测试2将克隆到上面的行,而ID 3将保持空白

我有:

选择'columnname','id` 从`表` 其中“columnname” 和'id`='id`
编写以查找包含数据的条目,但由于我对MySQL还是很陌生,因此不确定从这里开始到哪里。

您可以使用多表更新语法进行自连接:


请参见。

您可以使用多表更新语法进行自联接:

查看。

或子查询

Update t1
       Set t1.ColumnName = (Select Min(t2.ColumnName) From my_table t2 Where t2.ID = t1.ID And t2.ColumnName <> '')
FROM dbo.my_table t1
       Where t1.ColumnName = '' Or t1.ColumnName IS NULL
小提琴:

但是,自连接解决方案更干净、更快

或子查询

Update t1
       Set t1.ColumnName = (Select Min(t2.ColumnName) From my_table t2 Where t2.ID = t1.ID And t2.ColumnName <> '')
FROM dbo.my_table t1
       Where t1.ColumnName = '' Or t1.ColumnName IS NULL
小提琴:


但是,自连接解决方案更干净、更快

啊,太完美了,没有意识到加入在同一张表中有效-非常感谢。啊,太完美了,没有意识到加入在同一张表中有效-非常感谢