특정컬럼을 비교해서 중복된ROW 삭제


특정컬럼을 비교해서 중복된ROW 삭제

아참 난 전산쟁이였지 오랫만에 블로그본연의 포스팅 작업내용) XXX라는 테이블의 A B C라는 컬럼의 값을 체크하여 A B C컬럼의 값이 동일한 행을 색출하고 삭제 (1) A B C라는 컬럼을 결합하는 값을 가지는 새로운 작업용 컬럼을 작성 alter table XXX add CHECKVAL varchar(50); (2) 상기 작성한 컬럼에 값을 업데이트 update XXX set CHECKVAL = concat(A, B, C); (3) 중복 행을 색출 select CHECKVAL from XXX group by CHECKVAL having count(CHECKVAL) 1; 여기에서 중요한 포인트 상기쿼리는 중복된 하나의 행만 리턴 즉, 동일 CHECKVAL값을 가지는 행이 5개 존재하더라도 잴 처음 1개의 ROW만 리턴한다는 점!!! (4) 중복 행을 삭제 delete from XXX where IDX in (select IDX from (select IDX from XXX ...


#MYSQL #중복행삭제

원문링크 : 특정컬럼을 비교해서 중복된ROW 삭제