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

MySQL CHAR_LENGTH() 함수에 NULL을 입력하면 어떤 값이 반환될까?

MySQL CHAR_LENGTH() 함수와 NULL 처리 방식

MySQL에서 CHAR_LENGTH() 함수의 결과값은 인자를 어떻게 전달하느냐에 따라 달라집니다. 즉, NULL을 문자열('NULL') 형태로 전달하는지, 아니면 단순히 NULL 값 자체를 전달하는지에 따라 반환 결과가 완전히 다릅니다.

아래 예제를 통해 두 경우의 차이를 직접 확인해 보겠습니다.

1. 단순 NULL 값을 전달하는 경우

mysql> Select CHAR_LENGTH(NULL);
+-------------------+
| CHAR_LENGTH(NULL) |
+-------------------+
| NULL              |
+-------------------+
1 row in set (0.00 sec)

2. 'NULL'이라는 문자열을 전달하는 경우

mysql> Select CHAR_LENGTH('NULL');
+---------------------+
| CHAR_LENGTH('NULL') |
+---------------------+
| 4                   |
+---------------------+
1 row in set (0.00 sec)

결과 분석

위 실행 결과에서 알 수 있듯이, 두 경우의 동작은 다음과 같습니다.

  • 'NULL'을 문자열로 전달한 경우: 함수는 해당 문자열의 실제 문자 개수인 4를 정상적으로 반환합니다.
  • NULL 값을 그대로 전달한 경우: 유효한 문자열이 아니기 때문에 함수는 NULL을 반환합니다.

이처럼 MySQL의 대부분의 문자열 함수와 마찬가지로 CHAR_LENGTH() 함수도 NULL 입력에 대해 NULL을 반환한다는 점을 기억해 두면, 쿼리 작성 시 예기치 않은 결과를 방지하는 데 도움이 됩니다.