基于另一张表的数值更新 MySQL 表数据
假设您有两个结构相似的表,tableA 和 tableB:
id | name | value |
---|---|---|
1 | Joe | 22 |
2 | Derk | 30 |
任务是根据两表中匹配的 name 值,将 tableA 的 value 列的值复制到 tableB 的 value 列。
为此,您可以使用以下 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 操作,并使用 tableA 中对应的值更新 tableB 中的 value 列。
基于条件的动态值更新:
如果需要根据 tableA 中的值动态更新 tableB 中的 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>
此处,IF() 函数检查 tableA.value 是否大于 0。如果为真,则将 tableB.value 设置为 tableA.value 的值;否则,保留 tableB 中的原始值。
以上是如何根据另一个表的值更新 MySQL 表数据?的详细内容。更多信息请关注PHP中文网其他相关文章!