로딩
요청 처리 중입니다...

[MySql] 컬럼 내 데이터 중복 시 1개 빼고 모두 제거 쿼리

 [MySql] 컬럼 내 데이터 중복 시 1개 빼고 모두 제거 쿼리

DB를 다루다 보면 PK 값 없이 데이터 중복을 허용하는 경우가 있다. 실수로 데이터 중복이 발생할 경우를 대비해 보자.

*주의! 아래 글 모두 읽어 보시기 바랍니다.

안 읽고 실행할 경우 모두 삭제됩니다. 한 예로 File을 관리하는 테이블이 있고 중복이 있으면 아래와 같은 쿼리를 이용하자 DELETE a -- SELECT * FROM [FILE_TABLE] a INNER JOIN ( SELECT COUNT(*) ,MAX(seq) AS seq, fileId, fileName, filePath, FROM [FILE_TABLE] WHERE TYPE = 'eap' GROUP BY fileId HAVING COUNT(*) > 1 ) b ON a.fileId = b.fileId 자 그럼 이 쿼리를 분석해 보자 먼저 중복이 발생한 [FILE_TABLE] 테이블을 삭제할 예정이다.

그럼 어떤 데이터를 삭제하는지는 서브 쿼리를 살펴봐야 한다. 서브 쿼리를 보면 Group By로 fileId를 묶...

# DBMS # 삭제쿼리 # 데이터중복삭제 # 데이터삭제 # ssms # sqlServer # Oracle # Mysql # mssql # mariaDb # Delete쿼리 # Delete문 # DB데이터삭제 # 중복제거