首页 > 数据库 > mysql教程 > 如何根据匹配的用户名更新 SQL 表行?

如何根据匹配的用户名更新 SQL 表行?

DDD
发布: 2025-01-15 08:48:17
原创
439 人浏览过

How to Update SQL Table Rows Based on Matching Usernames?

根据匹配的用户名更新表中的行值

问:更新表值

在 SQL 数据库中,您有两个表,table_atable_b,它们都有一个名为 user_name 的公共列。您希望根据匹配的 user_name 值,将 table_b 中的特定列(名为 column_b_1 和 column_b_2)复制到 table_a 中的相应列(column_a_1 和 column_a_2)。如何使用 SQL 语句实现此目标?

答:解决方案

如果已就位适当的索引,您可以使用以下 UPDATE 语句:

<code class="language-sql">UPDATE table_a
SET
  column_a_1 = (SELECT table_b.column_b_1 
                    FROM table_b
                    WHERE table_b.user_name = table_a.user_name),
  column_a_2 = (SELECT table_b.column_b_2
                    FROM table_b
                    WHERE table_b.user_name = table_a.user_name)
WHERE
  EXISTS (
    SELECT *
    FROM table_b
    WHERE table_b.user_name = table_a.user_name
  );</code>
登录后复制

注意:此 UPDATE 语句使用子查询从 table_b 中检索与 table_a 中具有匹配 user_name 的每一行相对应的列值。

如果性能令人担忧,请考虑使用 SELECT 和 JOIN 操作构建临时表以存储修改后的行。随后,您可以从 table_a 中删除现有数据,并从临时表中重新填充它。

以上是如何根据匹配的用户名更新 SQL 表行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板