본문 바로가기
저장소이야기/MySql

[MySql] CONCAT과 CONCAT_WS 문자열 합치기

by 사랑꾼이야 2020. 5. 28.
반응형


Oracle에서 문자열 조합과 관련하여.(아래)

https://lovethefeel.tistory.com/28


MySql에서도 같은 이유로 정리를 한다.

필드를 조합하여 파일명을 만들 때, 문자열 삽입 등등.


샘플데이터.

DEPARTMENT_ID|DEPARTMENT_NAME|LOCATION|
-------------|---------------|--------|
           10|ACCOUNTING     |NEW YORK|
           20|RESEARCH       |DALLAS  |
           30|SALES          |CHICAGO |
           40|OPERATIONS     |BOSTON  |

CONCAT.

인수를 연결한 결과를 문자열로 반환한다.

하나 이상의 인수를 받을 수 있음.

doc.

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_concat

사용방법.

CONCAT(str1,str2,...)

예시1).

select CONCAT(DEPARTMENT_ID, DEPARTMENT_NAME, LOCATION) as CONCAT 
from DEPARTMENTS;

결과.

CONCAT              |
--------------------|
10ACCOUNTINGNEW YORK|
20RESEARCHDALLAS    |
30SALESCHICAGO      |
40OPERATIONSBOSTON  |

예시2).

문자열 조합.

select CONCAT('lovethefeel', 'tistory', '!!') as CONCAT;

결과.

CONCAT              |
--------------------|
lovethefeeltistory!!|


CONCAT_WS.

특수한 형태의 CONCAT().

첫 번째 인수는 다른 인수들의 구분 기호로 사용되며, 문자열 사이에 구분 기호를 추가.

구분기호가 NULL이면 값은 NULL이다.

doc.

https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_concat-ws

사용방법.

CONCAT_WS(separator,str1,str2,...)

예시1).

select CONCAT_WS(',', DEPARTMENT_ID, DEPARTMENT_NAME, LOCATION) as CONCAT 
from DEPARTMENTS;

결과.

CONCAT                |
----------------------|
10,ACCOUNTING,NEW YORK|
20,RESEARCH,DALLAS    |
30,SALES,CHICAGO      |
40,OPERATIONS,BOSTON  |

예시2).

첫번째 인자의 NULL 삽입.

select CONCAT_WS(NULL, DEPARTMENT_ID, DEPARTMENT_NAME, LOCATION) as CONCAT_WS 
from DEPARTMENTS;

결과.

CONCAT_WS|
---------|
         |
         |
         |
         |

예시3).

문자열 조합.

select CONCAT_WS(',', 'lovethefeel', 'tistory', '!!') as CONCAT_WS;

결과.

CONCAT_WS             |
----------------------|
lovethefeel,tistory,!!|

총평.

CONCAT 사용하기에는 MySql이 편한것 같다.

반응형

댓글