>  기사  >  데이터 베이스  >  SQL에서 고유 키워드의 네 가지 용도

SQL에서 고유 키워드의 네 가지 용도

坏嘻嘻
坏嘻嘻원래의
2018-09-15 09:42:112274검색

이 글은 SQL에서 고유 키워드의 4가지 사용법(코드 예제)을 제공합니다. 이는 특정 참조 값을 가지고 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

mysql을 사용할 때 특정 필드에서 중복되지 않은 레코드를 쿼리해야 하는 경우가 있습니다. mysql은 중복된 레코드를 필터링하고 하나만 유지하기 위해 고유한 키워드를 제공하지만 중복되지 않은 레코드를 반환하는 데에만 사용되는 경우가 많습니다. 중복된 기록 없이 모든 값을 반환하려면 숫자를 사용하는 대신 숫자를 사용하세요. 그 이유는 구별은 대상 필드만 반환할 수 있고 다른 필드는 반환할 수 없기 때문입니다. 이 문제는 오랫동안 나를 괴롭혔습니다. 구별로 해결할 수 없다면 이중 루프 쿼리로만 해결할 수 있습니다. 웹사이트의 경우, 이는 의심할 여지 없이 효율성에 직접적인 영향을 미칠 것입니다. 그래서 나는 이 문제를 조사하는 데 많은 시간을 보냈지만 온라인에서 해결책을 찾을 수 없었습니다. 이 기간 동안 나는 Rong Rong에 도움을 요청했습니다. 그 결과 우리 둘 다 우울해졌습니다

먼저 예를 살펴보겠습니다. :

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, independent name from table

안타깝게도 오류 정보 외에는 아무것도 얻을 수 없습니다. where 조건에 구별을 두는 것이 그렇게 어려운가요? 예, 여전히 오류가 보고됩니다. . . . . . .

번거롭지 않나요? 실제로 이 문제를 해결하기 위한 모든 노력이 실패했습니다. 계속 누군가에게 물어볼 수밖에 없습니다.

회사의 JAVA 프로그래머를 만났습니다. 그가 Oracle에서 구별을 사용하는 방법을 보여준 후, 그는 mysql에서 해결책을 찾지 못했습니다. 마침내 퇴근하기 전에 그는 나에게 그룹별을 시도해 보라고 제안했습니다.

오랜 노력 끝에 작동하지 않았습니다. 마침내 mysql 매뉴얼에서 사용법을 찾았습니다. 나는 필요한 기능을 달성하기 위해 그룹과 함께 group_concat(고유 이름)을 사용했습니다. 축복해 주세요. 최대한 빨리 시도해 보겠습니다.

오류를 신고하세요. . . . . . . . . . . . 우울한. . . . . . . mysql 매뉴얼도 나와 맞지 않았다. 처음에는 희망을 주다가 나중에는 절망에 빠지게 만들었다. . . .

다시 확인하세요. group_concat 기능은 4.1, halo, I am 4.0에서 지원됩니다. 다른 방법은 없습니다. 업그레이드하고, 업그레이드한 후 시도하면 성공합니다. . . . . .

드디어 완료되었지만 이제 고객에게도 업그레이드를 요청해야 합니다.

갑자기 아이디어가 떠올랐습니다. group_concat 함수를 사용할 수 있는데 다른 함수도 사용할 수 있나요?

어서 카운트 기능을 사용해 보세요. 작동됩니다. . . . . . . 울고 싶은데 너무 많은 노력이 필요했습니다. . . . . . . . 그것은 그렇게 간단하다는 것이 밝혀졌습니다. . . . . .

이제 완전한 문장을 공개하세요:

select *, count(distinct name) from table group by name

결과:

ID 이름 개수(고유 이름)

1 a 1

2 b 1

3 c 1

위 내용은 SQL에서 고유 키워드의 네 가지 용도의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.