【问题标题】:MySQL: Loop over all entries to update parent tableMySQL:循环所有条目以更新父表
【发布时间】:2011-06-15 14:45:56
【问题描述】:

我有一个父表“用户”和一个子表“配置文件”。对于每个配置文件,还存在一个具有相同 ID 的用户,但反之则不然。配置文件有名称,现在我也将属性名称添加给用户。

我想触发一个循环遍历所有配置文件的 MySQL 语句,获取具有相同 id 的用户,并使用配置文件的名称更新用户的列名。

我该怎么做?我以前从未在 SQL 语句中使用过循环..

【问题讨论】:

    标签: mysql loops


    【解决方案1】:

    SQL 是基于集合的,这样的事情不需要循环:

    UPDATE profiles
       set name = user.name
      from user
     where profiles.userId = user.userId
    

    【讨论】:

    • 我修改了您的声明(我想更新用户,而不是配置文件),但我得到了 1064。这是我的完整声明:UPDATE rpl_user set name = rpl_profile.name from rpl_profile where rpl_profile. id = rpl_user.id 我错过了什么?
    【解决方案2】:

    @KenDowns 是对的,你不需要 forloops。但他的说法有一个小缺陷。这是正确的,对我有用(你不需要从句):

    UPDATE user, profile
    SET user.name = profile.name
    WHERE profile.id = user.id
    

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 2022-01-25
      • 2014-05-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2014-02-27
      • 1970-01-01
      • 2012-07-20
      相关资源
      最近更新 更多