LENGTH() ফাংশনের মতো, MySQL BIT_LENGTH() ফাংশন একটি মাল্টি-বাইট নিরাপদ ফাংশন নয়৷ আমরা জানি যে মাল্টি-বাইট নিরাপদ ফাংশনের মধ্যে ফলাফলের পার্থক্য, যেমন CHAR_LENGTH() বা CHARACTER_LENGTH(), এবং BIT_LENGTH() ফাংশন বিশেষ করে ইউনিকোডের জন্য প্রাসঙ্গিক, যেখানে বেশিরভাগ অক্ষর দুটি বাইটে এনকোড করা হয় বা UTF-এর জন্য প্রাসঙ্গিক -8 যেখানে বাইটের সংখ্যা পরিবর্তিত হয়। এটি নীচের উদাহরণে প্রদর্শিত হয় -
উদাহরণ
mysql> Select BIT_LENGTH('tutorialspoint'); +------------------------------+ | BIT_LENGTH('tutorialspoint') | +------------------------------+ | 112 | +------------------------------+ 1 row in set (0.00 sec)
উপরের ফলাফল সেটটি দেখায় যে স্ট্রিং 'টিউটোরিয়াল পয়েন্ট' এর বিট দৈর্ঘ্য 112 কারণ এটি এখনও ইউনিকোড অক্ষরে রূপান্তরিত হয়নি। নিম্নলিখিত ক্যোয়ারী এটিকে ইউনিকোড অক্ষর −
-এ রূপান্তর করেmysql> SET @A = CONVERT('tutorialspoint' USING ucs2); Query OK, 0 rows affected (0.02 sec)
ইউনিকোডে স্ট্রিং রূপান্তর করার পরে, এটি ফলাফল দেয় 112 এর পরিবর্তে 224 কারণ ইউনিকোডে একটি একক অক্ষর 2-বাইট নেয় যেমন নীচে দেখানো হয়েছে −
mysql> Select BIT_LENGTH(@A); +----------------+ | BIT_LENGTH(@A) | +----------------+ | 224 | +----------------+ 1 row in set (0.00 sec)