我的桌子上有1百万条记录。 我想将第一行中名为“name”的一个字段与另一行的相同字段进行比较,如果匹配,则更新具有该名称的列“parent”。我该怎么做..?
示例:
Name code area Parent
------------------------------------
Nokia 610 cube
Investments 240 ahnc
Investments 241 hnnc
apple 500 sumo
Iphone 210 robert
所以当Name = Name时,请用该名称更新Parent
在这种情况下:
Name code area Parent
------------------------------------
Nokia 610 cube
Investments 240 ahnc Investments
Investments 241 hnnc Investments
apple 500 sumo
Iphone 210 robert
答案 0 :(得分:0)
这不是最好的解决方案,但它有效:
UPDATE table1 SET 'Parent'='Name'
WHERE 'name' IN (
SELECT t1.'Name' FROM table1 t1 HAVING count(*) > 1 );
答案 1 :(得分:0)
update t1 set parent = Name where Name in
(select Name from
(select Name from t1 group by Name having count(Name) > 1)
as Name);
子查询中的双重选择是为了避免“无法为FROM子句中的更新指定目标表”错误。