본문 바로가기
MySql

MySQL 필드에 NULL이 포함되어 있으면 MySQL CONCAT에서 NULL을 반환합니다.

by 베이스 공부 2021. 1. 8.
반응형

내 테이블 "장치"에 다음 데이터가 있습니다.

affiliate_name  affiliate_location  model     ip             os_type    os_version 

cs1             inter               Dell     10.125.103.25   Linux      Fedora  
cs2             inter               Dell     10.125.103.26   Linux      Fedora  
cs3             inter               Dell     10.125.103.27   NULL       NULL    
cs4             inter               Dell     10.125.103.28   NULL       NULL    

아래 쿼리를 실행했습니다.

SELECT CONCAT(`affiliate_name`,'-',`model`,'-',`ip`,'-',`os_type`,'-',`os_version`) AS device_name
FROM devices

아래 주어진 결과를 반환합니다.

cs1-Dell-10.125.103.25-Linux-Fedora
cs2-Dell-10.125.103.26-Linux-Fedora
(NULL)
(NULL)

NULL을 무시하고 결과가

cs1-Dell-10.125.103.25-Linux-Fedora
cs2-Dell-10.125.103.26-Linux-Fedora
cs3-Dell-10.125.103.27-
cs4-Dell-10.125.103.28-

 

해결 방법

 

COALESCE 로 래핑하여 NULL 값을 빈 문자열로 변환합니다.

SELECT CONCAT(COALESCE(`affiliate_name`,''),'-',COALESCE(`model`,''),'-',COALESCE(`ip`,''),'-',COALESCE(`os_type`,''),'-',COALESCE(`os_version`,'')) AS device_name
FROM devices

 

참조 페이지 https://stackoverflow.com/questions/15741314

 

 

반응형

댓글