1

我有一个带有两个单独表的数据库。一个表 (T1) 的唯一列中有 400 多个值,而另一个表 (T2) 有 14,000 多个行和多列。

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

我知道这非常简单直接,但我是 MySQL 的新手,并试图在我回到其他事情之前解决这个问题。提前致谢!

编辑:这是我一直试图无济于事..

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。

4

2 回答 2

0

您可以将两个表连接在一起并进行多表更新

从这样的事情开始:

UPDATE `apollo`.`Source`
  INNER JOIN `apollo`.`Bottom` ON `apollo`.`Bottom`.`URL` = `apollo`.`Source`.`SourceID` 
SET `apollo`.`Source`.`CaptureInterval` = '12';
于 2013-02-27T19:33:24.417 回答
0

您可以使用以下查询进行更新。但是,如果在子句中使用两个表中的索引URLSourceID列,则性能会好得多。WHERE

UPDATE `apollo`.`Source`, `apollo`.`Bottom`
SET `Source`.`CaptureInterval` = '12'
WHERE `Bottom`.`URL` = `Source`.`SourceID`
于 2013-02-27T19:38:58.220 回答