본문 바로가기
DataBase/MYSQL

[MYSQL] CONCAT_WS 함수

by 오늘은강박사갈거야~~ 2021. 5. 23.
반응형

CONCAT_WS()

이 함수는 사용자가 지정한 것(문자열, 컬럼)들을 구분자로 구분 한 뒤 결합하는 데 사용한다.

아래의 그림을 보면 간단히 이해 할 수 있는데, 내가 연결할 문자열들 사이에 넣을 구분자(separator)를 설정하고, 그다음에 문자열들을 나열한다. 구분자를 맨 앞에 지정해서 인수를 넣어준다는 데에 의미가 있는 것 같다.

 

CONCAT_WS 함수

[1] 사용 형태

 

1. 문자열을 연결하여 출력

 

SELECT CONCAT_WS('@','QWERTY', 'DAUM.NET');

-> 결과는

QWERTY@DAUM.NET

 

 

2. 각 열끼리의 연결 및 일괄적으로 문자열 삽입

 

ID_NUM NAME COUNTRY CITY
1 강박사 대한민국 서울
2 줄줄이 대한민국 부산

 

SELECT CONCAT_WS('&', COUNTRY, CITY) #COUNTRY와 CITY는 컬럼이므로 '로 감싸지 않는다.

-> 결과는

대한민국&서울대한민국&부산

 

 

3.WHERE 절에 사용한 CONCAT

 

SELECT CONCAT(COUNTRY, '(', CITY, ')') #조건에 맞는 것을 가지고 올때, COUNTRY(CITY)로 출력해라!
FROM TABLE # 이테이블에서
WHERE CONCAT_WS('_', ID_NUM, NAME) = "2_줄줄이" ; #ID_NAME=2_줄줄이에 해당하는 조건
SELECT CONCAT(COUNTRY, '(', CITY, ')') 
FROM TABLE  # 이 테이블에서
WHERE CONCAT_WS('_', ID_NUM, NAME) = "2_줄줄이"   # ID_NAME=2_줄줄이에 해당하는 조건

-> 결과는

대한민국(부산)

 

[2] 참고 사항

 

1. 만약 연결하려는 값 중, NULL이 있다면 NULL을 무시하고 출력한다.

    - CONCAT함수와는 다른 부분. CONCAT 함수는 NULL이 포함되어있는 부분은 NULL로 결과가 출력된다. 아래 SELECT문을 보면, 중간에 NULL이 있다. CONCAT 함수는 이 경우 전체 출력이 NULL로 되지만, CONCAT_WS 함수는 이를 무시하고 출력한다.

 

SELECT CONCAT_WS(':::', 'HELLO', NULL, 'BYE');

-> 결과는
 
HELLO:::BYE

 

[3] 참고 자료

https://www.w3resource.com/mysql/string-functions/mysql-concat_ws-function.php

 

MySQL CONCAT_WS() function - w3resource

MySQL CONCAT_WS() function stands for Concatenate With Separator.

www.w3resource.com

반응형

댓글