안녕하세요, 오늘은 MYSQL에서 리스트로 출력된 결과를 하나의 컬럼으로 추출하는 방법에 대해서 알아보도록 하겠습니다. MYSQL에서 리스트로 출력된 결과물을 하나의 컬럼으로 추출하고 싶을 땐 GROUP_CONCAT()이라는 함수를 사용하면 되는데요, GROUP_CONCAT을 어떻게 사용해야 하는지 알아봅시다~
테이블명 : NATIONAL_TABLE | |
GUBUN | NATIONAL_NM |
national | 대한민국 |
national | 미국 |
national | 중국 |
national | 일본 |
national | 호주 |
national | 대한민국 |
위와 같이 NATIONAL_TABLE에 데이터가 있다고 가정해보자.
구분값은 national 이면서 NATIONAL_NM 컬럼의 결과값을 한 줄로 표현해야 하는 경우 GROUP_CONCAT() 함수를 사용하면 됩니다.
SELECT
GUBUN
, GROUP_CONCAT(NATIONAL_NM) AS NATIONAL_NM
FROM NATIONAL_TABLE;
GUBUN | NATIONAL_NM |
national | 대한민국, 미국, 중국, 일본, 호주, 대한민국 |
GROUP_CONCAT의 구분자는 기본적으로 문자열 사이에 ' , '가 붙습니다.
그렇다면 구분자를 ' , ' 이외에 다른 문자를 사용하고 싶다면 어떻게 해야할까요??
SELECT
GUBUN
, GROUP_CONCAT(NATIONAL_NM SEPARATOR '^') AS NATIONAL_NM
FROM NATIONAL_TABLE;
GUBUN | NATIONAL_NM |
national | 대한민국^미국^중국^일본^호주^대한민국 |
자, 이번에는 결과값에서 중복된 데이터를 제거하여 추출하고 싶다면 어떻게 해야 할까요?
SELECT
GUBUN
, GROUP_CONCAT(DISTINCT NATIONAL_NM) AS NATIONAL_NM
FROM NATIONAL_TABLE;
GUBUN | NATIONAL_NM |
national | 대한민국^미국^중국^일본^호주 |
자, 이번엔 마지막으로 그룹화된 데이터를 정렬하려면 어떻게 해야 할까요??
SELECT
GUBUN
, GROUP_CONCAT(NATIONAL_NM ORDER BY NATIONAL_NM DESC) AS NATIONAL_NM
FROM NATIONAL_TABLE;
GROUP | NATIONAL_NM |
national | 호주^일본^중국^미국^대한민국^대한민국 |
[MYSQL] 어제, 오늘, 내일 날짜 구하기 / 요일구하기 (0) | 2022.04.02 |
---|---|
[MYSQL] SELECT한 결과로 INSERT하는 방법(꿀팁) (0) | 2022.04.01 |
[MYSQL] 문자열의 길이는 구할땐 어떤함수를 사용해야할까?? (0) | 2022.01.25 |
[MYSQL] 문자열 붙이기/합치기 CONCAT, CONCAT_WS(초간단) (0) | 2022.01.25 |
[MYSQL] NOW() 와 SYSDATE() 함수의 결과는 다르다 (0) | 2022.01.24 |