>  기사  >  데이터 베이스  >  mysql에서 group_concat() 함수를 사용하는 방법 요약

mysql에서 group_concat() 함수를 사용하는 방법 요약

怪我咯
怪我咯원래의
2017-03-30 10:13:311532검색


이 글의 예시에서는 mysql group_concat() 함수의 사용법을 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

group_concat(), 매뉴얼에 다음과 같이 나와 있습니다. 이 함수는 NULL 값이 아닌 을 반환합니다. 그룹의 연결 >문자열결과. 상대적으로 추상적이고 이해하기 어렵습니다.

간단하게 이해하면 실제로는 다음과 같습니다. group_concat()은 어떤 행이 동일한 그룹에 속하는지 계산하고 동일한 그룹에 속하는 열을 표시합니다. 반환할 열은 함수 매개변수 (필드 이름)에 의해 결정됩니다. 그룹은 group by에서 지정한 컬럼에 따라 그룹화하는 기준이 있어야 합니다.

group_concat 함수는 내부적으로 group by 문을 실행해야 할 것 같습니다.

1. 테스트 문:

SELECT group_concat(town) FROM `players` group by town

결과는 마을의 어떤 값이 동일한지 찾는 것입니다. 쉼표로 나누어 나열합니다.

group_concat(town)

Beijing, Beijing

Changsha

테스트:

SELECT group_concat( town )
FROM players

결과:

group_concat(town)

Changsha, Beijing, Beijing,

위의 내용은 group_concat이 오직 group by 문과 함께 사용하면 실제 테스트가 가능할까요?

3. group_concat( ):

SET @@GROUP_CONCAT_MAX_LEN=4

매뉴얼에 언급된 설정 구문은 다음과 같습니다.

SET [SESSION | GLOBAL] group_concat_max_len = val;

둘의 차이점은 무엇인가요?

SET @@global.GROUP_CONCAT_MAX_LEN=4;

global을 생략하면 다음과 같이 됩니다. SET @@GROUP_CONCAT_MAX_LEN=4;

4

SELECT group_concat(town) FROM `players`

문을 사용하여 다음을 얻습니다.

group_concat(town)

Changsha,Beijing,Changsha,Beijing


결론: group_concat() 함수는 group by 문과 함께 사용해야 합니다. 필요한 효과를 얻으십시오.
이유는 다음과 같이 이해할 수 있습니다. group_concat()은 그룹 x에 속하는 모든 구성원을 가져옵니다(함수의 열 매개변수는 표시해야 하는 필드를 지정합니다). 그룹 x는 어디에서 왔습니까? 지정된 그룹이 없으면 group_concat()이 어떤 그룹에 따라 멤버를 표시할지 알 수 없습니다. 따라서 위와 같이 group by 절이 없으면 Changsha와 Beijing이 표시됩니다.


이 기능은 실제로 언제 필요한가요?
쿼리 결과는 왼쪽에 그룹명이 표시되고, 오른쪽에 그룹의 모든 멤버 정보가 표시된다고 가정해 보겠습니다. 이 기능을 사용하면 많은 것을 저장할 수 있습니다.

또한 다음과 같이 사용하면: SELECT group_concat( name, sex ) FROM `players` town. 별로 의미가 없습니다. 열을 지정하는 group_concat()이 가장 좋은 경우입니다. 여러 열이 지정된 경우. 그러면 표시 결과는 다음과 유사합니다.

group_concat(name,sex)

Wang Tao, Wang Xiaoming 남성, Liu Huinv, Shu Ming 여성


위 내용은 mysql에서 group_concat() 함수를 사용하는 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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