将额外值从一行的一列复制到同一表中另一行的同一列

  • 本文关键字:一列 一行 复制 mysql sql
  • 更新时间 :
  • 英文 :


我有一个名为Address的表,其中包含来自两个来源的数千行,例如:X和Y。我想将Postcode的额外值(即源Y到源X的6个字符的邮政编码)复制到源X,然而,这并不是最好的方式,因为它有数千行,并且两个来源的StreetName不同,如果它是同一条街的话。下面是表格的样子。

>街道编号政编码>Luis Pasteur123123>Luis Pasteurtd style="text-align:left;">X>Luis Pasteur3
来源 城市 街道名称
X Pilar11
X PilarPilarB789789
Y Pilar Y Pilar Y Pilar

如果我正确读取了您的数据,更新自联接应该在这里工作:

UPDATE yourTable t1
INNER JOIN yourTable t2
ON t2.City = t1.City AND
t2.StreetNo = t1.StreetNo AND
INSTR(t2.Postcode, t1.Postcode) > 0
SET t1.Postcode = t2.Postcode
WHERE t1.Source = 'X' AND t2.Source = 'Y';

最新更新