아무거나

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

Data Store/DB

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

전봉근 2019. 2. 15. 18:30
반응형
  • 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 필드명)


반응형
Comments