1

2 つの別々のテーブルを持つデータベースがあります。1 つのテーブル (T1) にはその唯一の列に 400 以上の値があり、もう 1 つのテーブル (T2) には 14,000 以上の行と複数の列があります。

私がする必要があるのは、T1 の列を T2 の 1 つの列と比較することです。一致する値ごとに、T2 の同じ行で別の値を更新する必要があります。

これは非常に簡単でわかりやすいことはわかっていますが、私は MySQL を初めて使用するので、他のことに戻る前にこれを理解しようとしています。事前にたくさんありがとう!

編集:これが私が無駄にしようとしてきたことです..

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

編集2:

少し説明:

apollo.Bottom と apollo.Source は 2 つのテーブルです。

apollo.Bottom は、1 つの列とその列に 400 レコードを含むテーブルです。

Bottom.URL を Source.SourceID と比較したい。一致する場合は、Source.CaptureInterval を 12 に更新します。

4

2 に答える 2

0

2 つのテーブルを結合して、複数テーブルの更新を行うことができます。

次のようなものから始めます。

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 に答える