>  기사  >  데이터 베이스  >  MySQL에서 concat 및 group_concat 사용에 대한 간략한 분석

MySQL에서 concat 및 group_concat 사용에 대한 간략한 분석

jacklove
jacklove원래의
2018-06-14 17:07:082417검색

이 문서에 사용된 예제는 모두 다음 데이터베이스 테이블 tt2에서 실행됩니다.


1. concat() 함수

1 기능: 여러 문자열을 문자열로 연결합니다. .

2. 구문: concat(str1, str2,...)

반환 결과는 연결 매개 변수에 의해 생성된 문자열입니다. 매개 변수가 null인 경우 반환 값은 null입니다.

3. 예:

예 1: tt2의 정보로 concat(id, 이름, 점수)를 선택합니다.


행의 점수 값이 null이므로 중간에 행이 있습니다. tt2 테이블이 null입니다.

예 2: 예 1의 결과에서 ID, 이름, 점수 세 필드의 조합에는 구분 기호로 쉼표를 추가할 수 있습니다.


이것이 훨씬 더 즐거운 것 같습니다. 눈에 들어오네요~~

근데 SQL문 입력이 많이 번거롭네요. 3개 필드에 콤마를 2번 입력해야 하는데 10개면 쉼표를 9번 입력해야 하는데... 참 번거롭죠? 방법? ——그러면 매개변수 사이의 구분자를 지정할 수 있는 concat_ws()가 나왔습니다! ! !


2. concat_ws() 함수

1. 함수: concat()과 마찬가지로 여러 문자열을 하나의 문자열로 연결하지만 구분 기호를 한 번에 지정할 수 있습니다~ (concat_ws는 구분 기호와 연결됩니다)

2. 구문: concat_ws(separator, str1, str2, ...)

설명: 첫 번째 매개변수는 구분 기호를 지정합니다. 구분 기호는 null일 수 없습니다. null인 경우 반환 결과는 null이 됩니다.

3. 예:

예 3: concat_ws()를 사용하여 구분 기호를 쉼표로 지정하여 예 2와 동일한 효과를 얻습니다.


예 4: 구분 기호를 null로 지정하고 모든 결과가 null로 변경됨:



3. group_concat() 함수

머리말: group by가 있는 쿼리 문에서 select로 지정된 필드는 group by 문 뒤에 포함되거나 그룹 기초는 집계 함수에 포함됩니다. (그룹화에 대한 자세한 내용을 보려면 SQL에서 그룹화 사용에 대한 간략한 분석을 클릭하세요.)

예제 5:


이 예는 같은 이름을 가진 사람들 중 가장 작은 ID를 쿼리합니다. 같은 이름을 가진 사람들의 모든 ID를 쿼리하고 싶다면 어떻게 해야 할까요?

물론 다음과 같이 쿼리할 수 있습니다.

예 6:


그러나 동일한 이름이 여러 번 나타나면 매우 직관적이지 않은 것 같습니다. 각 이름을 한 번만 표시하고 동일한 이름을 가진 모든 사람의 ID도 표시할 수 있는 보다 직관적인 방법이 있습니까? ——group_concat()을 사용하세요

1. 함수: group by로 생성된 동일한 그룹의 값을 연결하고 문자열 결과를 반환합니다.

2. 구문: group_concat( [distinct] 연결할 필드 [필드 asc/desc 정렬순서] [구분자 '구분자'] )

참고: 원하는 경우 구별을 사용하여 중복된 값을 제외할 수 있습니다. 값을 정렬하려면 order by 절을 사용할 수 있습니다. 구분 기호는 문자열 값이며 기본값은 쉼표입니다.

3. 예:

예 7: 같은 이름을 가진 사람들의 ID 번호를 표시하려면 group_concat() 및 그룹화를 사용합니다.


예 8: 위의 ID 번호를 큰 것부터 작은 것까지 정렬합니다. '_'를 구분 기호로 사용합니다.


예 9: 위 쿼리는 이름별로 그룹화된 각 그룹의 모든 ID를 표시합니다. 다음으로 이름별로 그룹화된 모든 그룹의 ID와 점수를 쿼리해야 합니다.

이 기사에서는 MySQL에서 concat 및 group_concat의 사용을 간략하게 분석합니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트에 주목하세요.

관련 권장 사항:

MySQL 그래픽 관리 도구 소개

MySQL 저장 프로시저의 기본 기능에 대한 관련 설명

SQL에서 EXISTS 사용

위 내용은 MySQL에서 concat 및 group_concat 사용에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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