mysql 使用另一个表中的值更新列
P粉232793765
P粉232793765 2023-10-11 20:04:57
[MySQL讨论组]

我有两张桌子,看起来都像

id  name  value
===================
1   Joe     22
2   Derk    30

我需要根据每个表中的检查名称将 value 的值从 tableA 复制到 tableB

对于这个 UPDATE 语句有什么提示吗?

P粉232793765
P粉232793765

全部回复(2)
P粉186904731

您需要连接两个表:

例如,您想要将 name 的值从 tableA 复制到 tableB,它们具有相同的 ID

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.id = t2.id
SET t1.name = t2.name 
WHERE t2.name = 'Joe'

更新1

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.id = t2.id
SET t1.name = t2.name

更新2

UPDATE tableB t1 
        INNER JOIN tableA t2 
             ON t1.name = t2.name
SET t1.value = t2.value
P粉511985082

除了这个答案之外,如果您需要根据 tableA.value 动态更改 tableB.value,您可以执行以下操作:

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'
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号