MySQL:根据另一张表的数据更新列值
问题:
假设有两张结构相似的表:
id | name | value |
---|---|---|
1 | Joe | 22 |
2 | Derk | 30 |
任务是根据匹配的“name”值,使用表A中的值更新表B中的“value”列。
解决方案:
可以使用带有 JOIN 子句的 SQL UPDATE 语句来执行此更新操作。以下是一个可能的查询:
<code class="language-sql">UPDATE tableB INNER JOIN tableA ON tableB.name = tableA.name SET tableB.value = tableA.value;</code>
此查询将根据“name”列,更新表B中与表A匹配的所有行的“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>
在此示例中,只有当表A中的值大于0时,表B中“name”为“Joe”的行中的“value”列才会使用表A中的值进行更新。否则,表B中的现有值将保持不变。
以上是如何根据另一个表中的数据更新 MySQL 列的值?的详细内容。更多信息请关注PHP中文网其他相关文章!