程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> Mysql刪除重復數據只保留一條

Mysql刪除重復數據只保留一條

編輯:更多數據庫知識
方法一:
第一步 創建 一個 baijia_ming12His table  表結構和 你的表 一樣
DROP TABLE IF EXISTS `baijia_ming12His`;
CREATE TABLE `baijia_ming12His` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `xid` int(30) NOT NULL,
  `name` varchar(250) NOT NULL,
  `sex` int(2) NOT NULL,
  `geshu` int(2) NOT NULL,
  `szm` varchar(10) DEFAULT '0',
  `fenshu` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=451517 DEFAULT CHARSET=utf8;


第二步  在你的表 查詢 需要的數據  


select min(a.xid) xid, min(a.name) name, min(a.sex) sex, min(a.geshu) geshu, min(a.szm) szm, min(a.fenshu) fenshu  from baijia_ming12 a  group by a.name, a.sex  order by xid


把 查詢出來的 數據  插入 到  剛才的  臨時表

方法二:
DELETE from baijia_ming12 where (baijia_ming12.name,baijia_ming12.sex) in ( SELECT t.name,t.sex from
( select baijia_ming12.name,baijia_ming12.sex from  baijia_ming12 group by baijia_ming12.name,baijia_ming12.sex having count(*) > 1) as t)
and (baijia_ming12.id not in ( SELECT tp.id from ( 
select min(baijia_ming12.id) as id from baijia_ming12 group by baijia_ming12.name,baijia_ming12.sex having count(*)>1) as tp) ) *
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved