MySQL에서 중복 데이터를 제거하는 방법은 무엇입니까?

零下一度
풀어 주다: 2017-06-29 15:42:37
원래의
1400명이 탐색했습니다.

이 글은 주로 MySQL에 대한 관련 정보를 소개합니다. 중복 데이터 인스턴스에 대한 자세한 설명이 필요한 친구는

MySQL 중복 데이터 인스턴스에 대한 자세한 설명

중복 레코드에 대한 두 가지 의미가 있습니다. 하나는 완전합니다. 중복 레코드, 즉 모든 필드가 반복되고, 두 번째는 일부 필드가 반복되는 레코드입니다. 첫 번째 유형의 중복은 비교적 쉽게 해결할 수 있습니다. 중복을 제거하려면 query 문에 Unique 키워드를 사용하면 됩니다. 이러한 중복이 발생하는 주된 이유는 테이블 디자인이 좋지 않기 때문입니다. 이는 기본 키나 고유한 index 열을 테이블에 추가하면 방지할 수 있습니다.


select distinct * from t;
로그인 후 복사

두 번째 유형의 중복 문제는 일반적으로 중복 레코드 중 아무 레코드나 쿼리해야 합니다. 테이블 t에 id, name, address라는 세 개의 필드가 있다고 가정합니다. id는 기본 키이고 중복 필드는 이름과 주소입니다. 이 두 필드의 고유한 결과 집합을 가져오는 데 필요합니다.

-- Oracle, MySQL, 상관 하위 쿼리 사용


select * from t t1

 where t1.id =

 (select min(t2.id)

  from t t2

  where t1.name = t2.name and t1.address = t2.address);
로그인 후 복사

-- Hive는 FROM 절에서 하위 쿼리 사용만 지원합니다. 하위 쿼리에는 이름이 있어야 하며 열은 고유해야 합니다


select t1.*

 from t t1,

   (select name, address, min(id) id from t group by name, address) t2

 where t1.id = t2.id;
로그인 후 복사

-- 하이브의 row_number() 분석

함수


select t.id, t.name, t.address

 from (select id, name, address,

row_number() over (distribute by name, address sort by id) as rn 

     from t) t 

 where t.rn=1;
로그인 후 복사
를 사용할 수도 있습니다.

위 내용은 MySQL에서 중복 데이터를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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