본문 바로가기
Programing/DB

[MySQL] MySQL data 중복 제거 (DISTINCT, GROUPBY)

by 꾸압 2022. 6. 9.

 

제거하기 전 혹시 모르니 table을 복사하자

CREATE TABLE [복사할 TABLE NAME] LIKE [원본 TABLE];

INSERT INTO [복사할 TABLE] SELECT * FROM [원본 TABLE];

 

DISTINCT : 중복 제거. 정렬 X

DELETE DISTINCT [FIELD] FROM [TABLE] WHERE [조건];

 

GROUPBY : 중복 제거. 정렬 O

DELETE FROM [TABLE] WHERE [INDEX NAME] IN (SELECT MIN( [INDEX NAME] ) FROM [TABLE NAME] GROUP BY [중복 제거할 COLUMN_1], [중복 제거할 COLUMN_2] HAVING COUNT(*) > 1)

여기서 INDEX 는 AUTO_INCREMENT로 만든 KEY 값.

중복이면 INDEX 가 낮은 것을 삭제

 

=> 중복 데이터에서 1개만 남기고 삭제?

DELETE t1 FROM [삭제 TABLE] t1
INNER JOIN [삭제 TABLE] t2
WHERE
    t1.[index] > t2.[index] AND
    t1.[중복 Column Name] = t2.[중복 Column Name];

같은 TABLE 끼리 비교시켜 1개만 남기고 중복제거

t1, t2 는 비교를 위해 넣은 변수. 아무 이름이나 써도 상관X

 


 

<참조 1> https://stormpy.tistory.com/82

<참조 2> https://meanbymin.tistory.com/91 

<참조 3> https://www.mysqltutorial.org/mysql-delete-duplicate-rows/

<참조 4> https://hyang2data.tistory.com/3

 

'Programing > DB' 카테고리의 다른 글

[MySQL] 인덱스(index) 추가 & 삭제  (0) 2022.06.22
[MySQL] Cardinality  (0) 2022.06.21
[MySQL] MySQL access denied 오류 해결  (0) 2022.06.14
[DB] MySQL DB 백업 및 복구  (0) 2022.06.01

댓글