根据两个字段提取主键,并根据键替换这些字段

时间:2011-12-16 11:57:32

标签: mysql

我有一张格式为

的表格
ID NAME     NICKNAME MENTOR_NAME MENTOR_NICKNAME
------------------------------------------------
01 Nolan    Nole     Jonathan    Jones
02 Jonathan Jones 

字段MENTOR_NAME和MENTOR_NICKNAME包含现有NAME和NICKNAME组合的现有名称(保存为拼写错误)。

为了避免拼写错误问题,我想用MENTOR_ID替换MENTOR_NAME和MENTOR_NICKNAME,从而产生如下表格:

ID NAME     NICKNAME MENTOR_ID
------------------------------
01 Nolan    Nole     02
02 Jonathan Jonas

我无法弄清楚的是查询语法,这样我就可以避免通过手动执行每个记录或者为此编写一个php脚本。

任何人都可以帮我查询进行此转换吗?

编辑:添加了示例数据。

1 个答案:

答案 0 :(得分:1)

这是为了更新现有的表: -

update the_table as a,
the_table as b
set a.mentor_id = b.mentor_id
where a.name = b.mentor_name and a.nickname = b.mentor_nickname;

如果要复制到另一个表中: -

create table another_table
select a.id, a.name, a.nickname, b.mentor_id
from the_table as a
inner join the_table as b
on (a.name=b.mentor_name and a.nickname=b.mentor_nickname);