데이터베이스/MySQL

[MySQL] 여러 문자열을 구분하여 하나의 문자열로 합치기 (CONCAT_WS 함수)

떨어지는 용 2018. 1. 8. 10:23

▶MySQL 여러 문자열을 구분하여 하나의 문자열로 합치기 (CONCAT_WS 함수)




▶설명


간혹 여러 문자열 혹은 컬럼 값을 반복되는 구분자를 넣고 합쳐서 가져와야 하는 경우가 있습니다. (PHP에서 비슷한 함수로는 implode가 존재합니다.)

이 때 사용하는 함수가 CONCAT_WS 함수입니다.

CONCAT_WS 함수는 둘 이상의 문자열이 있는 경우,

각 문자열 사이에 설정한 구분자(콤마 혹은 콜론 등)를 넣어서 하나의 문자열로 반환해주는 함수입니다.


▶사용법


CONCAT_WS(구분자, 문자열1 [, 문자열2, 문자열3 ...])


▶예제 쿼리 (Example Query)



기본 사용

쿼리

SELECT CONCAT_WS(',', '안녕하세요', '감사해요', '잘있어요', '다시만나요')  AS hello;

결과

 hello

 안녕하세요,감사해요,잘있어요,다시만나요



컬럼 데이터 합치기

예제 테이블 : hero_collection

 idx

type 

name 

 안중근

 윤봉길

 김유신

 이순신

 이성계

 왕건

 7 

 반갑수


쿼리

SELECT CONCAT_WS('::', idx, type, name) as hero_name FROM hero_collection;


결과

 hero_name

 1::1::안중근

 2::1::윤봉길

 3::2::김유신

 4::2::이순신

 5::3::이성계

 6::3::왕건

 7::4::반갑수