MySQL `NULL` 관련 함수 정리

stone tiger·2025년 2월 17일

MySQL

목록 보기
9/11

📌 MySQL NULL 관련 함수 정리 🚀

MySQL에서 NULL을 다룰 때 사용하는 핵심 함수들을 정리해볼게!


1. NULL 체크 함수

🔹 IS NULL & IS NOT NULL

  • NULL 값인지 확인하는 조건문.
  • = 연산자로 NULL을 비교할 수 없으므로 IS NULL을 사용해야 함.
SELECT * FROM users WHERE email IS NULL;     -- email이 NULL인 경우
SELECT * FROM users WHERE email IS NOT NULL; -- email이 NULL이 아닌 경우

2. NULL을 다른 값으로 변환

🔹 IFNULL(expr, default_value)

  • exprNULL이면 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'

3. NULL 처리 연산

🔹 NULLIF(expr1, expr2)

  • 두 값이 같으면 NULL 반환, 다르면 expr1 반환.
  • 예제: 두 값이 같으면 NULL, 다르면 첫 번째 값 유지.
SELECT NULLIF(5, 5); -- NULL (5 == 5)
SELECT NULLIF(5, 10); -- 5 (5 ≠ 10)

4. NULL 값 처리 시 주의할 점

🔹 NULL 값과의 연산 결과는 NULL

  • NULL과의 연산 결과는 항상 NULL이 됨.
SELECT 10 + NULL;  -- NULL
SELECT 'Hello' || NULL; -- NULL
  • 해결 방법: IFNULL() 또는 COALESCE() 사용
SELECT 10 + IFNULL(NULL, 0); -- 10
SELECT 'Hello' || COALESCE(NULL, ' World'); -- 'Hello World'

5. 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

0개의 댓글