小编Bro*_*dge的帖子

mysql update将重复项移动到不同的列

我有一个表contacts,其中包含列index_id,name,address,phone1,phone2,phone3.

由于多年来管理不善,484,097中有212,019行phone1并不是唯一的.但是,每条记录都是唯一的记录.

我需要phone1独一无二,但我不想失去212k的记录.

phone3是每个记录为null的新列.我的想法是,我可以简单地移动*VALUES(phone1)phone3

我试过这个查询不明白ON DUPLICATE UPDATE会简单地更新以前存在的记录.

insert into tmp select * from contacts
on duplicate key update phone3 = values(phone1);
Run Code Online (Sandbox Code Playgroud)

我尝试将所有重复项移动到phone3上

update contacts 
set phone3 = phone1
where count(phone3) > 1;
Run Code Online (Sandbox Code Playgroud)

但这是对组功能的无效使用.

我认为这将需要一个子查询,这就是我开始感到困惑的地方.有什么建议吗?

*move意味着数据不再存在,phone1而是存在phone3.就像在phone1 = NULLphone3 = data

mysql

2
推荐指数
1
解决办法
93
查看次数

标签 统计

mysql ×1