【发布时间】:2011-06-15 14:45:56
【问题描述】:
我有一个父表“用户”和一个子表“配置文件”。对于每个配置文件,还存在一个具有相同 ID 的用户,但反之则不然。配置文件有名称,现在我也将属性名称添加给用户。
我想触发一个循环遍历所有配置文件的 MySQL 语句,获取具有相同 id 的用户,并使用配置文件的名称更新用户的列名。
我该怎么做?我以前从未在 SQL 语句中使用过循环..
【问题讨论】:
我有一个父表“用户”和一个子表“配置文件”。对于每个配置文件,还存在一个具有相同 ID 的用户,但反之则不然。配置文件有名称,现在我也将属性名称添加给用户。
我想触发一个循环遍历所有配置文件的 MySQL 语句,获取具有相同 id 的用户,并使用配置文件的名称更新用户的列名。
我该怎么做?我以前从未在 SQL 语句中使用过循环..
【问题讨论】:
SQL 是基于集合的,这样的事情不需要循环:
UPDATE profiles
set name = user.name
from user
where profiles.userId = user.userId
【讨论】:
@KenDowns 是对的,你不需要 forloops。但他的说法有一个小缺陷。这是正确的,对我有用(你不需要从句):
UPDATE user, profile
SET user.name = profile.name
WHERE profile.id = user.id
【讨论】: