📌 MySQL 테이블에서 중복된 데이터를 효과적으로 삭제하는 방법

2025. 3. 25. 14:45·기술블로그

📌 개념 정리

이번 포스팅에서는 MySQL 테이블에서 중복된 데이터를 효과적으로 삭제하는 방법을 소개합니다. 특히, 책 제목(title)과 같은 특정 필드의 값이 중복되는 경우에 유용하게 사용할 수 있는 쿼리입니다.


🚦 중복 데이터 삭제 방법

MySQL 테이블에서 중복된 값이 있을 때, 특정 조건을 사용하여 중복된 레코드만 제거하는 방법입니다.

🎯 쿼리 예시

책 제목(title)이 중복되는 경우, 가장 최근의 ID(bookID)가 높은 레코드를 삭제하고 최초의 데이터만 유지하는 쿼리입니다.

DELETE b1
FROM books b1
JOIN books b2
  ON b1.title = b2.title
 AND b1.bookID > b2.bookID;

🚨 쿼리 작동 원리

  • 같은 테이블을 두 번 조인(self-join)하여 같은 제목의 다른 레코드를 찾아냅니다.
  • 조건 b1.bookID > b2.bookID를 통해 중복된 데이터 중 가장 최근 데이터(ID가 높은 것)를 삭제합니다.
  • 결과적으로 동일한 제목의 첫 번째 레코드만 유지됩니다.

🧪 실전 사용 예시

이 방법은 데이터 정제를 위해 매우 유용하며, 예를 들어 도서 목록, 회원 목록, 상품 목록 등에서 중복 데이터를 정리할 때 사용할 수 있습니다.


🧠 고급 팁 & 주의사항

  • 삭제 전 항상 백업하거나 트랜잭션을 활용하세요.
  • 삭제할 데이터를 사전 확인하기 위해 SELECT로 먼저 테스트하는 것을 추천합니다.
-- 삭제 전 테스트 조회
SELECT b1.*
FROM books b1
JOIN books b2
  ON b1.title = b2.title
 AND b1.bookID > b2.bookID;

✅ 마무리 요약 및 복습 포인트

  • 중복된 데이터를 삭제할 때 자기 자신과 JOIN하여 조건을 지정할 수 있습니다.
  • 항상 중요한 작업 전 테스트를 진행하여 안전하게 처리하세요.

이 쿼리를 활용하여 중복 데이터를 효과적으로 관리해 보세요!

'기술블로그' 카테고리의 다른 글

📌 Select *와 Select 컬럼 지정의 차이점: 성능 최적화와 효율적인 쿼리 작성  (0) 2025.03.25
📌 My Sql에서 부분 일치 검색으로 중복 데이터 제거하기  (0) 2025.03.25
📌 MySQL 데이터베이스 정리 (with 크롤링 in Selenium, PymySQL)  (0) 2025.03.25
📌 크롤링 시 IndexError 예외처리 방법 (초기값은 있었지만 없을경우)  (0) 2025.03.25
🐍 Python + PyMySQL로 MySQL 리팩토링(2/2)  (0) 2025.03.21
'기술블로그' 카테고리의 다른 글
  • 📌 Select *와 Select 컬럼 지정의 차이점: 성능 최적화와 효율적인 쿼리 작성
  • 📌 My Sql에서 부분 일치 검색으로 중복 데이터 제거하기
  • 📌 MySQL 데이터베이스 정리 (with 크롤링 in Selenium, PymySQL)
  • 📌 크롤링 시 IndexError 예외처리 방법 (초기값은 있었지만 없을경우)
Chansman
Chansman
안녕하세요! 코딩을 시작한 지 얼마 되지 않은 초보 개발자 찬스맨입니다. 이 블로그는 제 학습 기록을 남기고, 다양한 코딩 실습을 통해 성장하는 과정을 공유하려고 합니다. 초보자의 눈높이에 맞춘 실습과 팁, 그리고 개발하면서 겪은 어려움과 해결 과정을 솔직하게 풀어내려 합니다. 함께 성장하는 개발자 커뮤니티가 되기를 바랍니다.
  • Chansman
    찬스맨의 프로그래밍 스토리
    Chansman
  • 전체
    오늘
    어제
    • 분류 전체보기 (517) N
      • Python (31)
      • 프로젝트 (43)
      • 과제 (21)
      • Database (40)
      • 멘토링 (9)
      • 특강 (21) N
      • 기술블로그 (153) N
      • AI 분석 (5)
      • HTML & CSS (31)
      • JavaScript (17)
      • AWS_Cloud (21)
      • 웹스크래핑과 데이터 수집 (14)
      • Flask (42)
      • Django (45) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Chansman
📌 MySQL 테이블에서 중복된 데이터를 효과적으로 삭제하는 방법
상단으로

티스토리툴바