MySQL에서 구분자를 활용한 문자열 결합 방법
MySQL에서는 CONCAT_WS() 함수를 사용하면 구분자(separator)를 포함하여 두 개 이상의 문자열을 손쉽게 하나로 결합할 수 있습니다. 함수 이름의 'WS'는 'With Separator'의 약자로, 결합되는 문자열 사이에 지정한 구분자를 자동으로 삽입해 주는 역할을 합니다.
CONCAT_WS() 함수 문법
CONCAT_WS(구분자, 문자열1, 문자열2, ..., 문자열N)
첫 번째 인수는 각 문자열 사이에 삽입될 구분자이며, 그 뒤에 오는 인수들은 하나의 문자열로 결합하고자 하는 값들입니다. 구분자는 숫자 값이 아닌 한 반드시 따옴표(' 또는 ")로 감싸야 합니다.
사용 예제
mysql> Select CONCAT_WS('.','www','tutorialspoint','com');
+---------------------------------------------+
| CONCAT_WS('.','www','tutorialspoint','com') |
+---------------------------------------------+
| www.tutorialspoint.com |
+---------------------------------------------+
1 row in set (0.00 sec)위 예제를 보면, 점(.) 구분자가 'www', 'tutorialspoint', 'com'이라는 세 개의 문자열 사이에 자동으로 삽입되어 마치 도메인 주소 형태처럼 하나의 문자열로 깔끔하게 결합된 것을 확인할 수 있습니다.
알아두면 좋은 특징
CONCAT_WS() 함수는 결합 대상 문자열 중 일부가 NULL이더라도 오류 없이 나머지 문자열들만 정상적으로 결합해 준다는 장점이 있습니다. 다만 구분자 자체가 NULL로 지정되면 전체 결과값은 NULL로 반환되므로 주의해야 합니다. 이러한 특성 덕분에 CONCAT_WS()는 일반 CONCAT() 함수보다 NULL 처리 측면에서 더 안정적으로 활용될 수 있습니다.