NULL 관련 함수 정리 🚀MySQL에서 NULL 값을 다룰 때 사용하는 핵심 함수들을 정리해볼게!
NULL 체크 함수IS NULL & IS NOT NULLNULL 값인지 확인하는 조건문.= 연산자로 NULL을 비교할 수 없으므로 IS NULL을 사용해야 함.SELECT * FROM users WHERE email IS NULL; -- email이 NULL인 경우
SELECT * FROM users WHERE email IS NOT NULL; -- email이 NULL이 아닌 경우
NULL을 다른 값으로 변환IFNULL(expr, default_value)expr이 NULL이면 default_value를 반환.NULL이 아니면 원래 값 반환.SELECT IFNULL(NULL, 'No Data'); -- 'No Data'
SELECT IFNULL('Hello', 'No Data'); -- 'Hello'
COALESCE(expr1, expr2, ..., exprN)NULL이 아닌 값 반환.NULL이 아닌 값을 선택.SELECT COALESCE(NULL, NULL, 'Hello', 'World'); -- 'Hello'
SELECT COALESCE(NULL, 'Data Missing', 'Fallback'); -- 'Data Missing'
NULL 처리 연산NULLIF(expr1, expr2)NULL 반환, 다르면 expr1 반환.NULL, 다르면 첫 번째 값 유지.SELECT NULLIF(5, 5); -- NULL (5 == 5)
SELECT NULLIF(5, 10); -- 5 (5 ≠ 10)
NULL 값 처리 시 주의할 점NULL 값과의 연산 결과는 NULLNULL과의 연산 결과는 항상 NULL이 됨.SELECT 10 + NULL; -- NULL
SELECT 'Hello' || NULL; -- NULL
IFNULL() 또는 COALESCE() 사용SELECT 10 + IFNULL(NULL, 0); -- 10
SELECT 'Hello' || COALESCE(NULL, ' World'); -- 'Hello World'
NULL 관련 함수 정리| 함수 | 설명 |
|---|---|
IS NULL / IS NOT NULL | 값이 NULL인지 확인 |
IFNULL(expr, default) | NULL이면 default 값 반환 |
COALESCE(val1, val2, ...) | NULL이 아닌 첫 번째 값 반환 |
NULLIF(a, b) | a == b이면 NULL 반환 |
IF(expr, true_value, false_value) | expr이 참이면 true_value, 거짓이면 false_value |