DataBase/Mysql

Mysql 중복 데이터 제거(같은 테이블 유사 데이터 제거)

민돌v 2021. 9. 23. 00:40

db데이터를 조회했을 때 데이터가 중복으로 잘못 들어갔을 때 정말 화가난다. ㅂㄷㅂㄷ

 

중복된 행을 지우기 전에 먼저 중복이 존재하는지 알아야한다.

 

Select 중복 데이터 조회

select * from CCTV a, CCTV b where a.name > b.name and a.lat = b.lat and a.lon = b.lon;

나는 lat 과 lon이라는 컬럼을 가지는 테이블 중에 중복된 데이터를 지우고자 한다.

간단하게 설명하면

a.name > b.name 은 auto_increment 속성을 가지는 ID이다. 나중에 들어온 값만 지우기 위한 조건 문이다.

뒤에는 and 연산자를 이용해 sql 다중 조건 연산을 해주었다.

 

 

 Delete 중복 데이터 삭제

delete a from AllTimeShop a, AllTimeShop b where a.name > b.name and a.lat = b.lat and a.lon = b.lon;

조회랑 똑같다.

더 높은 id값을 가지는 a 행을 지운다.

 

삭제하기 전에 먼저 간단한 test 테이블을 만들고 해 본 뒤에 쿼리문을 실행하는 걸 추천><

 

 

 

참고

https://jootc.com/p/201906022867