2011-12-16 68 views
-2

我有一个表格式提取基于两个领域的主键,取代基于关键

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

字段MENTOR_NAME和MENTOR_NICKNAME包含现有现有名和昵称的名称(除错别字)这些领域组合。

要避免错字的问题,我想用一个MENTOR_ID导致表像,以取代MENTOR_NAME和MENTOR_NICKNAME:

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

我无法弄清楚是查询语法,使我能避免通过每个记录会手动或者为此写一个php脚本。

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

编辑:添加示例数据。

+0

据混淆,可以提供输入和输出的一些例子吗? – ajreal 2011-12-16 12:02:41

回答

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);