본문 바로가기
데이터베이스

[MySQL] 특정한 컬럼에 동일한 값이 중복 입력된 경우 한 개만 남기고 삭제하는 쿼리

by 바퀴 굴리는 프로그래머 2022. 8. 28.
반응형

처음 입력한 레코드를 남기고 삭제하는 경우

DELETE n1 FROM names n1, names n2
  WHERE n1.id > n2.id AND n1.value = n2.value



마지막에 입력한 레코드를 남기고 삭제하는 경우

DELETE n1 FROM names n1, names n2
  WHERE n1.id < n2.id AND n1.value = n2.value

※ n1과 n2는 동일한 테이블이어야 함
※ id 는 autoincrement 속성을 가진 정수 값을 가짐



활용 예)

DELETE a FROM TB_INSTR_CAL a, TB_INSTR_CAL b 
 WHERE a.일련번호>b.일련번호 AND 
       a.측정기번호=b.측정기번호 AND 
       a.교정일=b.교정일 AND 
       a.차회교정일=b.차회교정일;




참고 문헌)

 

Delete all Duplicate Rows except for One in MySQL?

How would I delete all duplicate data from a MySQL Table? For example, with the following data: SELECT * FROM names; +----+--------+ | id | name | +----+--------+ | 1 | google | | 2 | yahoo ...

stackoverflow.com

 

반응형