이 글에서는 mysql의 두 가지 중복 제거 방법과 관련 정보를 예제 코드에 대해 하나씩 소개합니다. 필요한 친구는
mysql Re-
방법 1:
MySQL을 사용할 때 특정 필드의 중복 레코드를 query해야 하는 경우가 있습니다. 그러나 mysql은 중복된 중복 레코드를 필터링하고 이를 유지하기 위한 고유 키워드를 제공합니다. 중복되지 않은 레코드의 모든 값을 반환하는 데 사용하지 않고 고유 레코드 수를 반환하는 데에만 사용되는 경우가 많습니다. 그 이유는 구별은 대상 필드만 반환할 수 있고 other필드
를 반환할 수 없기 때문입니다. 먼저 예를 살펴보겠습니다.
table id name 1 a 2 b 3 c 4 c 5 b
라이브러리 구조는 대략 다음과 같습니다. 실제 상황은 훨씬 더 복잡할 것입니다.
예를 들어, 하나의 명령문을 사용하여 중복되지 않은 이름을 가진 모든 데이터를 쿼리하려면 Unique를 사용하여 중복된 중복 레코드를 제거해야 합니다.
select distinct name from table
얻은 결과는
name a b c
효과를 얻은 것 같은데, 내가 얻고 싶은 것은 id 값인가요? 쿼리 문을 변경합니다.
select distinct name, id from table
결과는 다음과 같습니다.
id name 1 a 2 b 3 c 4 c 5 b
distinct가 작동하지 않는 이유는 무엇입니까? 작동하지만 동시에 두 필드에 영향을 미칩니다. 즉, 삭제하려면 ID와 이름이 동일해야 합니다. . . . . . .
쿼리 문을 다시 변경해 보겠습니다.
select id, distinct name from table
안타깝게도 오류 메시지 외에는 아무것도 얻을 수 없습니다. 고유한 내용을 처음에 배치해야 합니다. where 조건에 구별을 두는 것이 그렇게 어려운가요? 오류를 보고할 수 있습니다. . . . . . .
최종 유용한 설명은 다음과 같습니다.
select *, count(distinct name) from table group by name
결과:
id name count(distinct name) 1 a 1 2 b 1 3 c 1
마지막 항목은 중복됩니다. 그냥 놔두면 목적이 달성됩니다. . . . .
아, 네, 그런데 group by는 order by와limit 전에 배치되어야 합니다. 그렇지 않으면 오류가 보고됩니다. . . . . . . . ! OK
요약 문: select *, count(distinct name) from (select * from table... 및 기타 중첩 문) group by name
방법 2:
group by 사용
SELECT * FROM( select * from customer where user=( SELECT source_user from customer WHERE user='admin') UNION ALL select * from customer where user=( select source_user from customer where user=( SELECT source_user from customer WHERE user='admin')) union ALL select * from customer where user=( select source_user from customer where user=( select source_user from customer where user=( SELECT source_user from customer WHERE user='admin'))) UNION ALL select * from customer where source_user=(/*我的上线的上线的user*/ select user from customer where user=( select source_user from customer where user=( SELECT source_user from customer WHERE user='admin'))) union all select * from customer where source_user=(/*我的上线的上线的上线user*/ select user from customer where user=( select source_user from customer where user=( select source_user from customer where user=( SELECT source_user from customer WHERE user='admin'))))) as alias group by user;
별칭을 추가할 때 주의하세요. 그렇지 않으면 오류가 보고됩니다. where 문 외부에 별칭을 래핑한 다음 그룹 기준을 사용하여 중복 항목을 제거하세요.
위 내용은 mysql의 두 가지 중복 제거 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!