您的位置:首页 > 数据库 > MySQL

MySQL删除重复数据行,只保留一条

2015-10-12 22:16 579 查看
原文地址 : http://quqtalk.iteye.com/blog/2013602
Sql代码  


delimiter $$  

  

CREATE TABLE `devices_all` (  

  `device_all_id` int(11) NOT NULL AUTO_INCREMENT,  

  `device_id` varchar(512) DEFAULT NULL,  

  `device_token` varchar(512) DEFAULT NULL,  

  `client_agent` varchar(512) DEFAULT NULL,  

  `create_time` datetime DEFAULT NULL,  

  PRIMARY KEY (`device_all_id`)  

) ENGINE=MyISAM AUTO_INCREMENT=49 DEFAULT CHARSET=latin1$$  

表名devices_all,判重列device_id。 

 

Sql代码  


delete from devices_all  

where device_id in (select  device_id from  (select device_id from  devices_all  a  group by a.device_id having count(a.device_id) > 1) as a)   

and device_all_id not in (select device_all_id from (select min( device_all_id) device_all_id from devices_all group by  device_id having count( device_id)>1) as b)
                        

Sql代码  


delimiter $$  

  

CREATE TABLE `devices_all` (  

  `device_all_id` int(11) NOT NULL AUTO_INCREMENT,  

  `device_id` varchar(512) DEFAULT NULL,  

  `device_token` varchar(512) DEFAULT NULL,  

  `client_agent` varchar(512) DEFAULT NULL,  

  `create_time` datetime DEFAULT NULL,  

  PRIMARY KEY (`device_all_id`)  

) ENGINE=MyISAM AUTO_INCREMENT=49 DEFAULT CHARSET=latin1$$  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: