別のテーブルの値に基づいて MySQL テーブルのデータを更新します
同様の構造を持つ 2 つのテーブル、tableA と tableB があるとします。
id | name | value |
---|---|---|
1 | Joe | 22 |
2 | Derk | 30 |
タスクは、2 つのテーブルの一致する名前の値に基づいて、テーブル A の値列の値をテーブル B の値列にコピーすることです。
これを行うには、次の MySQL UPDATE ステートメントを使用できます:
<code class="language-sql">UPDATE tableB INNER JOIN tableA ON tableB.name = tableA.name SET tableB.value = tableA.value;</code>
このステートメントは、name 列に基づいて tableA と tableB の間で INNER JOIN 操作を実行し、tableB の value 列を tableA の対応する値で更新します。
条件ベースの動的な値の更新:
テーブル A の値に基づいてテーブル B の値列を動的に更新する必要がある場合は、次のメソッドを使用できます:
<code class="language-sql">UPDATE tableB INNER JOIN tableA ON tableB.name = tableA.name SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value) WHERE tableA.name = 'Joe';</code>
ここで、IF() 関数は、tableA.value が 0 より大きいかどうかをチェックします。 true の場合、tableB.value を tableA.value の値に設定します。それ以外の場合は、tableB の元の値を保持します。
以上が別のテーブルの値に基づいて MySQL テーブルのデータを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。