mysql - 将一行的列与另一行的同一列进行比较,如果匹配则更新第三列

标签 mysql sql sql-server

我的表中有 100 万条记录。 我想将第一行的一个名为“名称”的字段与其他行的同一字段进行比较,如果匹配,则更新具有该名称的“父”列。我该怎么办..?

示例:

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

最佳答案

这不是最好的解决方案,但它有效:

UPDATE table1 SET 'Parent'='Name'
WHERE 'name' IN (
SELECT t1.'Name' FROM table1 t1 HAVING count(*) > 1 );

关于mysql - 将一行的列与另一行的同一列进行比较,如果匹配则更新第三列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34865175/

相关文章:

mysql - SQL 查询将记录分组在单独的字段下

php - Mysql相同字段但不同条件的总和

MySQL 在大型数据集上使用 IN 更新时速度缓慢

SQL Server 2008 : how to select sum of all sessions where difference between two consecutive sessions is less than 10 minutes

sql - SQL 中的字符串连接不起作用

java - 无法将 Grails 3.3 与 mysql 数据库连接

c# - 从 Web Api .Net Core 容器连接到 MySQL 容器?如何获取IP地址?

sql - SELECT MAX() 太慢 - 有其他选择吗?

mysql - 当我在 sql 中使用 Not Like 时无法识别的关键字接近

sql - 按 XML 的不同大小写排序