Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL IFNULL()과 NULLIF() 함수의 차이점 완벽 정리

MySQL의 IFNULL() 함수와 NULLIF() 함수는 이름이 비슷해서 혼동하기 쉽지만, 사실 두 함수의 기능은 전혀 다릅니다. 흥미롭게도 두 함수의 문법 구조 자체는 거의 동일합니다.

IFNULL() 함수의 문법

IFNULL(expression1, expression2)

NULLIF() 함수의 문법

NULLIF(expression1, expression2)

두 함수를 구별하는 핵심 포인트

두 함수의 차이는 첫 번째 인수를 결과로 반환하는 조건에 있습니다.

  • IFNULL(): 첫 번째 인수가 NULL이 아니면 첫 번째 인수를 그대로 반환합니다. 만약 첫 번째 인수가 NULL이라면 두 번째 인수를 반환합니다.
  • NULLIF(): 두 인수가 서로 같으면 NULL을 반환하고, 서로 다르면 첫 번째 인수를 반환합니다.

실행 예제

mysql> Select IFNULL('Ram','Shyam');
+-----------------------+
| IFNULL('Ram','Shyam') |
+-----------------------+
| Ram                   |
+-----------------------+
1 row in set (0.00 sec)

mysql> Select NULLIF('Ram','Shyam');
+-----------------------+
| NULLIF('Ram','Shyam') |
+-----------------------+
| Ram                   |
+-----------------------+
1 row in set (0.00 sec)

결과 해석

위 실행 결과만 보면 두 함수가 동일하게 'Ram'을 반환하기 때문에 비슷한 함수처럼 보입니다. 하지만 반환된 이유는 전혀 다릅니다.

IFNULL() 함수가 'Ram'을 반환한 이유는 'Ram'이 첫 번째 인수이면서 NULL이 아니기 때문입니다. 반면 NULLIF() 함수가 'Ram'을 반환한 이유는 'Ram'이 첫 번째 인수이고, 두 번째 인수인 'Shyam'과 값이 서로 다르기 때문입니다.

즉, IFNULL()은 NULL 처리용 함수이고, NULLIF()는 값 비교용 함수라는 점을 기억하면 두 함수를 쉽게 구별할 수 있습니다.