1

我正在寻找在 id 相同的情况下克隆数据库中的条目。

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

例子:

ID      COLUMNNAME
1       Test 1
1      
2       
2       Test 2
3
3

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

我有:

SELECT `columnname`, `id`
FROM `table`
WHERE `columnname` <> ''
    AND `id` = `id`

写出来查找带有数据的条目,但不确定从这里去哪里,因为我对 MySQL 还是很陌生。

4

2 回答 2

3

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

UPDATE my_table t1 JOIN my_table t2 ON t2.ID = t1.ID AND t2.columnname <> ''
SET    t1.columnname = t2.columnname

sqlfiddle上查看。

于 2013-07-23T15:44:23.613 回答
1

或子查询

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

小提琴:http ://sqlfiddle.com/#!3/5fb81/5

但是,自联接解决方案更清洁、更快。

于 2013-07-23T15:48:39.447 回答