我正在寻找克隆数据库中的条目,而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的新手。
答案 0 :(得分:3)
您可以使用多表UPDATE
语法进行自联接:
UPDATE my_table t1 JOIN my_table t2 ON t2.ID = t1.ID AND t2.columnname <> ''
SET t1.columnname = t2.columnname
在sqlfiddle上查看。
答案 1 :(得分: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
但是,自联接解决方案更清洁,更快捷。