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

MySQL BIT_LENGTH() 함수에 빈 문자열을 전달하면 어떻게 될까?

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을 반환합니다.