msyql 중복 제거

에 busi_id 어디 사용자 정보에서 삭제 
(로부터 busi_id 선택
(busi_id 갖는 카운트 (busi_id)> 1) tmp1하여 그룹 사용자 정보로부터 busi_id 해당)
하지와 ID
로부터 ID를 선택 (
busi_id 갖는 카운트가 그룹 사용자 정보에서 (선택한 분 (ID) 번호를 (busi_id)> 1) tmp2)


.无主键添加主键再去重操作


DELETE FROM 사용자 ID NOT IN이 ( SELECT 온도가 .min_id FROM ( SELECT MIN (ID ) min_id 로부터 사용자 그룹 이름 , 나이 ) AS 온도를 ) ;

기본 키가 디자인 테이블에 지정되지 않은 경우,
가능한 중복 데이터를 가져 오기 할 때
동일한 표에 표시하는 복수의 복수의 기록 결과.
다음은이 문제를 해결하기 위해 아이디어를 다음과 같습니다 :

; 별개의 문장의 사용은 임시 테이블의 tmp에 저장된 중복 레코드를 필터링하지 않습니다
표 TMP AS를 (서로 다른 산화 주석, SNAME, 나이, S에서 섹스 SELECT) 만들기
 
원래 테이블의 데이터 레코드를 삭제
의에서 삭제할
 
데이터를 임시 테이블에 원래의 테이블에 삽입.
TMP SELECT * FROM의 삽입,
 
임시 테이블 삭제
드롭 테이블의 tmp를; 

 

 

 

 

우리가 이름과 성이 같은 데이터가 삭제하려면이 여기에 제시된 방법은, 학생, 이름, 성별 (M : 여성, 1 0)의 표가 있습니다

첫째, 데이터 시트를 보면

이름
1  왕 루 0
 리튬 멩 0
 장 슈 아이  1 
4   리튬 멩   0 
5  장 슈 아이  1 
6   리우 타오   1 

NO.1

이드가 작은 데이터 보존

학생 T1, T2 학생 t1부터 삭제 
t1.name = t2.name AND t1.sex = t2.sex AND t1.id> t2.id

이드가 큰 데이터 보존

학생 T1, T2 학생 t1부터 삭제 
t1.name = t2.name AND t1.sex = t2.sex AND t1.id <t2.id

 

참고의 마지막 t1.id> t2.id 잊지 마세요, 그렇지 않으면 작동하기 전에 데이터를 백업하십시오, 모든 데이터가 삭제됩니다

 

NO.2

student_tmp (이름, 성별) INTO INSERT하는 것은 
, 학생 FROM 섹스 DISTINCT 이름을 선택

 

개요

두 가지 방법의 장점과 단점 :

두 방법에 필요한 시간을 단축,하지만 두 번째 방법은 기본 키가 UUID 인 경우, 처리 할 필요, INT가 증가하는 주요 열쇠가 될 것입니다, 다음 SQL에게 그것을 실행합니다.

업데이트 student_tmp 세트 ID = UUID ()

추천

출처www.cnblogs.com/Struts-pring/p/11032918.html