MySQL에서 BIT_LENGTH() 함수는 문자열의 길이를 비트(bit) 단위로 반환하는 문자열 함수입니다. 흔히 사용하는 CHAR_LENGTH()나 LENGTH() 함수가 각각 문자 수 또는 바이트 단위의 길이를 반환하는 것과 달리, BIT_LENGTH()는 문자열을 구성하는 실제 비트 수를 알려준다는 점이 특징입니다.
문법
BIT_LENGTH(Str)
여기서 Str은 BIT_LENGTH() 함수의 인수로, 비트 단위 길이를 구하고자 하는 대상 문자열을 의미합니다. Str은 문자열 또는 숫자열 모두 가능하며, 문자열인 경우에는 반드시 따옴표로 감싸야 합니다.
예제
다음 예제는 문자열 'New Delhi'의 비트 길이를 구하는 방법입니다. 이 문자열은 9개의 문자로 이루어져 있고 각 문자가 8비트(1바이트)이므로, 총 72비트가 반환됩니다.
mysql> Select BIT_LENGTH('New Delhi');
+-------------------------+
| BIT_LENGTH('New Delhi') |
+-------------------------+
| 72 |
+-------------------------+
1 row in set (0.00 sec)숫자열에도 동일하게 적용할 수 있습니다. 아래 예제에서 숫자 123456은 6자리이므로 6 × 8 = 48비트가 반환됩니다.
mysql> select BIT_LENGTH(123456);
+--------------------+
| BIT_LENGTH(123456) |
+--------------------+
| 48 |
+--------------------+
1 row in set (0.00 sec)
참고로 BIT_LENGTH()의 결과값은 문자열 인코딩에 따라 달라질 수 있습니다. 예를 들어 UTF-8 환경에서는 한글과 같은 멀티바이트 문자가 문자당 2~3바이트를 차지하기 때문에, 영문과 글자 수가 같더라도 더 큰 비트 값이 반환됩니다. 따라서 다국어 데이터를 다룰 때는 이 점을 고려하여 함수를 선택하는 것이 좋습니다.