서로 다른 결과를 한줄로 합쳐서 보여줘야 할 때(GROUP_CONCAT)

by 조쉬 posted Jul 28, 2020
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
  • GROUP BY로 GROUPING한 필드말고 중복이 안되는 문자열들을 가진 필드의 문자열들을 합칠땐 GROUP_CONCAT을 사용

    • Table Schema(Table Name: example_table)

       

    • Table Sample Data

       

        SELECT * FROM test_example;
      
    • 콤마를 구분자로 한 결과값으로 합쳐져있는 문자열 도출(group_concat 기본 구분자는 콤마)

       

        SELECT name, GROUP_CONCAT(value) 
        FROM test_example
        GROUP BY name;
      
    • 임의의 구분자로 한 결과값으로 합쳐져있는 문자열 도출 

       

        SELECT name, GROUP_CONCAT(value SEPARATOR '|') 
        FROM test_example
        GROUP BY name;
      
    • 임의의 구분자로 한 결과값으로 표시되는 결과의 중복을 제거

       

        SELECT name, GROUP_CONCAT(DISTINCT value SEPARATOR '|') 
        FROM test_example
        GROUP BY name;
      
    • 임의의 구분자로 한 결과값으로 표시되는 결과의 중복을 제거한 값을 정렬하여 도출

       

        SELECT name, GROUP_CONCAT(DISTINCT value ORDER BY value SEPARATOR '|') 
        FROM test_example
        GROUP BY name;
      

    MySQL에서 group by로 구분자를 이용하여 문자열을 합칠땐 GROUP_CONCAT을 이용한다.

    1. 기본: GROUP_CONCAT을(필드명)
    2. 임의의 구분자 지정: GROUP_CONCAT을(필드명 SEPARATOR '구분자')
    3. 중복제거: GROUP_CONCAT을(DISTINCT 필드명)
    4. 문자열기준으로 정렬 : GROUP_CONCAT을(필드명 ORDER BY 필드명)

 



출처: https://bkjeon1614.tistory.com/88?category=666040 [아무거나]