从2个表中查找匹配项,更改其他字段?

时间:2013-02-27 19:18:57

标签: mysql

我有一个包含两个独立表的数据库。一个表(T1)在其唯一列中具有400+个值,而另一个表(T2)具有14,000多个行和多个列。

我需要做的是将T1中的列与T2中的一列进行比较。对于每个匹配值,我需要更新T2中同一行中的不同值。

我知道这很简单直接,但我是MySQL的新手并试图在我回到其他事情之前解决这个问题。非常感谢![/ p> 编辑:这是我一直试图无济于事的事情。

UPDATE `apollo`.`Source`, `apollo`.`Bottom`
SET `Source`.`CaptureInterval` = '12'
WHERE `Bottom`.`URL` LIKE `Source`.`SourceID`

编辑2:

稍作澄清:

apollo.Bottom和apollo.Source是两个表。

apollo.Bottom是一列,该列中有一列和400条记录。

我想将Bottom.URL与Source.SourceID进行比较。如果它们匹配,我想将Source.CaptureInterval更新为12。

2 个答案:

答案 0 :(得分:0)

您可以将这两个表连接在一起并执行multiple table update

从这样的事情开始:

UPDATE `apollo`.`Source`
  INNER JOIN `apollo`.`Bottom` ON `apollo`.`Bottom`.`URL` = `apollo`.`Source`.`SourceID` 
SET `apollo`.`Source`.`CaptureInterval` = '12';

答案 1 :(得分:0)

您可以使用以下查询进行更新。但是,如果在URL子句中使用这两个表中的SourceIDWHERE列时,性能会好得多。

UPDATE `apollo`.`Source`, `apollo`.`Bottom`
SET `Source`.`CaptureInterval` = '12'
WHERE `Bottom`.`URL` = `Source`.`SourceID`