ホームページ >データベース >mysql チュートリアル >別のテーブルのデータに基づいて MySQL 列の値を更新するにはどうすればよいですか?
MySQL: 別のテーブルのデータに基づいて列の値を更新します
質問:
同様の構造を持つ 2 つのテーブルがあるとします。
id | name | value |
---|---|---|
1 | Joe | 22 |
2 | Derk | 30 |
タスクは、一致する「name」値に基づいて、テーブル B の「value」列をテーブル A の値で更新することです。
解決策:
SQL UPDATE ステートメントを JOIN 句とともに使用して、この更新操作を実行できます。考えられるクエリは次のとおりです:
<code class="language-sql">UPDATE tableB INNER JOIN tableA ON tableB.name = tableA.name SET tableB.value = tableA.value;</code>
このクエリは、「name」列に基づいて、テーブル A に一致するテーブル B 内のすべての行の「value」列を更新します。
動的な値の更新:
テーブル A.value の値に基づいてテーブル B.value を動的に更新するようにクエリを変更できます。たとえば、次のクエリはテーブル A.value が 0 より大きい場合にのみテーブル B.value を更新します:
<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>
この例では、テーブル B の「名前」「Joe」を持つ行の「値」列は、テーブル A の値が 0 より大きい場合にのみ、テーブル A の値で更新されます。それ以外の場合、テーブル B の既存の値は変更されません。
以上が別のテーブルのデータに基づいて MySQL 列の値を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。