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

MySQL에서 COALESCE() 대신 IFNULL() 함수를 사용하는 방법

IFNULL()과 COALESCE()의 차이점

먼저 두 함수의 기본 동작을 이해해야 합니다. IFNULL() 함수는 첫 번째 인수가 NULL이 아니면 첫 번째 인수를 반환하고, NULL이라면 두 번째 인수를 반환합니다. 반면 COALESCE() 함수는 인수 목록 중 첫 번째로 NULL이 아닌 값을 반환합니다.

흥미로운 점은 두 함수가 인수가 정확히 2개일 때 동일하게 작동한다는 것입니다. 그 이유는 다음과 같습니다.

  • IFNULL() 함수는 오직 2개의 인수만 받을 수 있습니다.
  • COALESCE() 함수는 임의 개수의 인수를 받을 수 있습니다.

COALESCE() 대신 IFNULL() 사용 조건

따라서 COALESCE() 함수 자리에 IFNULL() 함수를 사용하려면 인수의 개수가 반드시 2개여야 합니다. 아래 예제를 통해 두 함수가 2개의 인수를 가질 때 동일한 결과를 반환하는 것을 확인할 수 있습니다.

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

mysql> Select COALESCE(NULL, 'Green');
+-------------------------+
| COALESCE(NULL, 'Green') |
+-------------------------+
| Green                   |
+-------------------------+
1 row in set (0.00 sec)

위 결과에서 볼 수 있듯이, 첫 번째 인수가 NULL이고 두 번째 인수가 'Green'인 경우 IFNULL()과 COALESCE() 모두 'Green'을 반환합니다.

정리

인수가 2개인 경우에는 IFNULL()과 COALESCE()를 서로 바꿔 사용할 수 있지만, 인수가 3개 이상인 경우에는 IFNULL()을 사용할 수 없으므로 반드시 COALESCE()를 사용해야 합니다.