MySQL 문자 결합(CONCAT,IFNULL) NULL 항목이 있는 경우 예제

CONCAT을 사용하여 문자 결합을 할때 결합 하는 값중 NULL이 있을경우 예상히 못한 결과를 얻는 경우도 있습니다.

예를 들어 아래와 같은 테이블이 있다고 가정하겠습니다.

테이블 이름은 test_table 이라고 정하겠습니다.

id    col_a        col_b        col_c
---------------------------------------------

1      a          b            c

2      a         b            NULL

3      a         NULL         c

 

테이블에는 col_a, col_b, col_c 라는 컬럼이 있습니다.

3개의 컬럼에 있는 값을 CONCAT으로 문자 결합을 하는 방법은 아래와 같습니다.

SELECT id, CONCAT(col_a, col_b, col_c) AS col_abc FROM test_table;

 

쿼리를 실행한 결과

id    col_abc
----------------

1     abc

2     NULL

3     NULL

id 2와 3의의 문자 결합 결과는 NULL 입니다.

컬럼에 NULL이 있어도 문자를 결합할 수 있는 방법으로는 IFNULL이 있습니다.

 

IFNULL 사용 방법

SELECT id, CONCAT(IFNULL(col_a, ""), IFNULL(col_b, ""), IFNULL(col_c,"")) AS col_abc FROM test_table;

 

IFNULL 실행 결과

id     col_abc
-----------------

1     abc

2     ab

3     ac

 

문자를 결합 하려고 하는 항목중에 NULL값이 있어도 결합을 하고 싶은 경우의 예제를 알아봤습니다.

댓글