MySQL에서 BIT_LENGTH() 함수에 빈 문자열을 매개변수로 전달하려면 반드시 공백 없이 따옴표만 사용해야 합니다(즉, '' 형태). 만약 따옴표 없이 함수를 호출하면 MySQL은 이를 인수가 전달되지 않은 함수 호출로 인식하고 오류를 반환합니다.
반면, 빈 문자열을 따옴표로 감싸서 전달하면 MySQL은 정상적으로 처리하여 결과값으로 0을 반환합니다. 이는 비트 길이 관점에서 빈 문자열은 저장된 비트가 전혀 없기 때문입니다.
예제
다음 예제를 통해 두 경우의 차이를 확인할 수 있습니다.
mysql> Select BIT_LENGTH();
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'BIT_LENGTH'
mysql> Select BIT_LENGTH('');
+----------------+
| BIT_LENGTH('') |
+----------------+
| 0 |
+----------------+
1 row in set (0.00 sec)위 예제에서 볼 수 있듯이, 첫 번째 쿼리처럼 따옴표 없이 BIT_LENGTH()를 호출하면 '매개변수 개수가 올바르지 않다'는 오류(ERROR 1582)가 발생합니다. 하지만 두 번째 쿼리처럼 빈 따옴표('')를 전달하면 함수가 정상적으로 실행되어 0을 반환합니다.