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

MySQL EXPORT_SET() 함수 – 인수 중 하나라도 NULL이면 어떻게 될까?

MySQL의 EXPORT_SET() 함수는 인수로 전달된 값 중 하나라도 NULL이면 결과로 NULL을 반환합니다. 즉, 다섯 개의 인수 중 어느 하나가 NULL이라면 함수는 정상적인 비트 문자열 대신 NULL을 돌려줍니다.

EXPORT_SET() 함수란?

본격적으로 살펴보기 전에 함수의 기본 구조를 간단히 짚어보겠습니다.

EXPORT_SET(bits, on, off[, separator[, number_of_bits]])
  • bits: 비트 단위로 검사할 숫자 값
  • on: 해당 비트가 1(설정됨)일 때 표시되는 문자열
  • off: 해당 비트가 0(해제됨)일 때 표시되는 문자열
  • separator: 각 결과를 구분하는 구분자 (기본값은 콤마 ',')
  • number_of_bits: 검사할 비트 수 (기본값은 64, 최대 64까지 지정 가능)

인수에 NULL이 포함된 경우의 동작

아래 예제들은 다섯 개 인수 중 하나씩 NULL을 넣었을 때 모두 NULL이 반환되는 것을 보여줍니다.

1. 첫 번째 인수(bits)가 NULL인 경우

mysql> Select EXPORT_SET(NULL, 'Y','N',',', 4);

+----------------------------------+
| EXPORT_SET(NULL, 'Y','N',',', 4) |
+----------------------------------+
| NULL                             |
+----------------------------------+

1 row in set (0.00 sec)

2. 두 번째 인수(on)가 NULL인 경우

mysql> Select EXPORT_SET(5, NULL,'N',',', 4);

+--------------------------------+
| EXPORT_SET(5, NULL,'N',',', 4) |
+--------------------------------+
| NULL                           |
+--------------------------------+

1 row in set (0.00 sec)

3. 세 번째 인수(off)가 NULL인 경우

mysql> Select EXPORT_SET(5, 'Y','N',',', NULL);

+----------------------------------+
| EXPORT_SET(5, 'Y','N',',', NULL) |
+----------------------------------+
| NULL                             |
+----------------------------------+

1 row in set (0.00 sec)

4. 네 번째 인수(separator)가 NULL인 경우

mysql> Select EXPORT_SET(5, 'Y','N',NULL, 4);

+--------------------------------+
| EXPORT_SET(5, 'Y','N',NULL, 4) |
+--------------------------------+
| NULL                           |
+--------------------------------+

1 row in set (0.00 sec)

정리

위 예제에서 확인할 수 있듯이, EXPORT_SET() 함수는 어떤 위치의 인수가 NULL이더라도 무조건 NULL을 반환합니다. 따라서 실무에서 이 함수를 사용할 때는 컬럼 값이나 변수에 NULL이 포함될 가능성이 있는지 반드시 확인해야 하며, 필요하다면 IFNULL() 또는 COALESCE() 같은 함수를 함께 사용해 NULL 처리를 해주는 것이 안전합니다.