เช่นเดียวกับฟังก์ชัน LENGTH() ฟังก์ชัน MySQL BIT_LENGTH() ไม่ใช่ฟังก์ชันความปลอดภัยแบบหลายไบต์ ตามที่เราทราบความแตกต่างของผลลัพธ์ระหว่างฟังก์ชันความปลอดภัยแบบหลายไบต์ เช่น CHAR_LENGTH() หรือ CHARACTER_LENGTH() และฟังก์ชัน BIT_LENGTH() เกี่ยวข้องโดยเฉพาะกับ Unicode ซึ่งอักขระส่วนใหญ่เข้ารหัสเป็นสองไบต์หรือเกี่ยวข้องกับ UTF -8 โดยที่จำนวนไบต์แตกต่างกันไป ดังตัวอย่างด้านล่าง −
ตัวอย่าง
mysql> Select BIT_LENGTH('tutorialspoint'); +------------------------------+ | BIT_LENGTH('tutorialspoint') | +------------------------------+ | 112 | +------------------------------+ 1 row in set (0.00 sec)
ชุดผลลัพธ์ด้านบนแสดงให้เห็นว่าความยาวบิตของสตริง 'tutorialspoint' คือ 112 เนื่องจากยังไม่ได้แปลงเป็นอักขระ Unicode แบบสอบถามต่อไปนี้แปลงเป็นอักขระ Unicode -
mysql> SET @A = CONVERT('tutorialspoint' USING ucs2); Query OK, 0 rows affected (0.02 sec)
หลังจากแปลงสตริงใน Unicode จะให้ผลลัพธ์เป็น 224 แทนที่จะเป็น 112 เนื่องจากใน Unicode อักขระตัวเดียวจะใช้เวลา 2 ไบต์ดังที่แสดงด้านล่าง -
mysql> Select BIT_LENGTH(@A); +----------------+ | BIT_LENGTH(@A) | +----------------+ | 224 | +----------------+ 1 row in set (0.00 sec)