首页 > 数据库技术 > 详细

mysql 删除表中的某列的重复字段

时间:2015-03-10 17:03:44      阅读:386      评论:0      收藏:0      [点我收藏+]

假设:

create table t(
id int not null primary key auto_increment,
name char(10) not null,
sex char(2) not null
)engine=myisam;


insert into t values
(null,tom,),
(null,jack,),
(null,小文,),
(null,小文,),
(null,tom,),
(null,小张,),
(null,小赵,),
(null,tom,),
(null,jack,),
(null,小赵,);

 技术分享

 

删除重复字段SQL代码

delete t as a
from t as a,
(select * from t group by name having count(1)>1) as b
where a.name=b.name
and a.id > b.id;

 

详细解释

1、首先把所有重复的第一个字段取出

select * from t group by name having count(1)>1

技术分享

2、再与原表组成对照表

select * from t as a,
(select * from t group by name having count(1)>1) as b
where a.name=b.name;

技术分享

3、取出重复第一个字段的id号以外的所有字段

select * from t as a,
(select * from t group by name having count(1)>1) as b
where a.name=b.name
and a.id > b.id;

技术分享

4、进行删除

delete t as a
from t as a,
(select * from t group by name having count(1)>1) as b
where a.name=b.name
and a.id > b.id;

技术分享

 

mysql 删除表中的某列的重复字段

原文:http://www.cnblogs.com/inuex/p/4326334.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!