MySQLアップデート:SET句に基づいて行が変更されるのはなぜですか?

dba.stackexchange https://dba.stackexchange.com/questions/2963

  •  16-10-2019
  •  | 
  •  

質問

1つのフィールドを更新した膨大な数のテーブルに接続された更新クエリを実行し、29Kの一部の行と一致しました。 SET句に追加のみで同じクエリを実行して、一致した行が118Kの一部の行に増加しました。これは、句が編集された場合にのみ変更されるはずです。

役に立ちましたか?

解決

私はそれを理解しただけだと思います...

MySQLは、更新中に生成されるすべての行ではなく、更新される行数をカウントする必要があります。違いは、1つの[a]から[b]が多く、[c]から1つの[b]が多い場合、すべてを結合するとn([c])行が作成されますが、[b]はn(b]のみをカウントするだけです( [b])。 [c]のセットを追加すると、この数値n([b]) + n([c])が作成されます。

セット句のフィールドは異なる表にあるため、更新された数が変更されます。

ライセンス: CC-BY-SA帰属
所属していません dba.stackexchange
scroll top