> 데이터 베이스 > MySQL 튜토리얼 > mysql 중복 데이터 삭제

mysql 중복 데이터 삭제

WBOY
풀어 주다: 2023-05-13 20:30:07
원래의
16216명이 탐색했습니다.

MySQL은 관계형 데이터베이스 관리 시스템이며 세계에서 가장 인기 있는 오픈 소스 데이터베이스 중 하나입니다. 실제 작업에서는 데이터 중복이 자주 발생합니다. 이 경우 데이터 정리 및 중복 제거를 수행해야 합니다. MySQL은 중복 데이터를 삭제하는 다양한 방법을 제공합니다. 이 문서에서는 중복 데이터를 제거하는 몇 가지 일반적인 기술을 소개합니다.

1. DISTINCT를 사용하여 중복 데이터 삭제

MySQL은 결과 집합에서 중복 행을 제거할 수 있는 DISTINCT 키워드를 제공합니다. SELECT 문과 함께 DISTINCT 키워드를 사용할 수 있습니다. 예:

SELECT DISTINCT column1,column2,column3 FROM table_name;
로그인 후 복사

이 문은 컬럼1, 컬럼2 및 컬럼3으로 구성된 고유한 결과 집합을 반환합니다. 그러나 이 방법은 동일한 행만 제거할 수 있습니다. 테이블에 데이터가 거의 동일한 두 행이 있고 다른 열이 몇 개만 있는 경우 DISTINCT 방법은 중복 데이터를 제거할 수 없습니다. 이때 GROUP BY 방식을 사용해야 합니다.

2. GROUP BY를 사용하여 중복 데이터 제거

GROUP BY는 MySQL 집계 함수의 중요한 부분으로, 데이터를 그룹화할 때 중복 데이터를 제거하는 데도 도움이 됩니다. GROUP BY를 사용하는 경우 하나 이상의 열을 그룹화 기준으로 지정해야 합니다. 예:

SELECT column1,column2 FROM table_name GROUP BY column1,column2;
로그인 후 복사

이 문은 열1과 열2로 구성된 고유한 결과 집합을 반환합니다. GROUP BY는 일반적으로 그룹화된 데이터에 대한 통계 분석을 수행하기 위해 집계 함수 COUNT, SUM, AVG 등과 함께 사용됩니다.

3. HAVING을 사용하여 중복 데이터 삭제

HAVING은 MySQL의 GROUP BY 문의 확장 기능으로, 그룹화 후 데이터를 필터링할 수 있습니다. 때로는 열에 한 번만 나타나는 데이터를 삭제해야 하는 경우가 있는데, 이는 HAVING 문을 통해 수행할 수 있습니다.

SELECT column1,COUNT(column2) FROM table_name GROUP BY column1 HAVING COUNT(column2) > 1;
로그인 후 복사

이 명령문은 컬럼1과 컬럼2로 구성된 결과 집합을 반환하며, 여기서 컬럼2의 데이터 발생 횟수는 1보다 큽니다. COUNT 함수를 통해 컬럼 내 각 요소의 발생 횟수를 센 후, HAVING을 통해 조건에 ​​맞지 않는 데이터를 필터링하여 중복된 데이터를 삭제하는 목적을 달성할 수 있습니다.

4. 하위 쿼리를 사용하여 중복 데이터 삭제

하위 쿼리는 MySQL의 복잡한 쿼리 문제를 해결하는 효과적인 방법입니다. 중복 데이터를 삭제할 때 하위 쿼리를 사용할 수도 있습니다. 예:

DELETE FROM table_name WHERE column1 IN (SELECT column1 FROM table_name GROUP BY column1 HAVING COUNT(*) > 1);
로그인 후 복사

이 명령문은 1열에 한 번만 나타나는 데이터를 삭제합니다. 먼저 서브 쿼리는 GROUP BY, HAVING 문을 이용하여 컬럼1이 1개 이상 나타나는 데이터를 필터링한 후 IN 키워드를 이용하여 삭제 작업을 위해 삭제할 데이터 범위를 지정한다. 삭제 작업은 테이블의 데이터를 직접 삭제하므로 복원할 수 없으므로 주의해서 작업해야 한다는 점에 유의해야 한다.

요약:

이 글의 소개를 통해 우리는 DISTINCT, GROUP BY, HAVING 및 하위 쿼리를 사용하는 것을 포함하여 MySQL에서 중복 데이터를 제거하는 여러 가지 방법에 대해 배웠습니다. 실제 작업에서는 특정 시나리오에 따라 적절한 방법을 선택하여 중복 데이터를 정리하고 중복 제거하여 데이터 품질과 처리 효율성을 향상시켜야 합니다.

위 내용은 mysql 중복 데이터 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿