Heim >Datenbank >MySQL-Tutorial >MySQL删除重复数据行,只保存一条

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

WBOY
WBOYOriginal
2016-06-07 16:24:211536Durchsuche

MySQL删除重复数据行,只保留一条 ? ? 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) DEFAU

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

?

?

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。?

?

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)  

?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn