কম্পিউটার

MySQL BIT_LENGTH() ফাংশন মাল্টি-বাইট নিরাপদ কি না?


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)

  1. শর্তাধীন NULL ক্ষেত্রে MySQL?

  2. একটি MySQL নির্বাচন বিবৃতিতে IF() ফাংশন?

  3. MySQL-এ সারিগুলির জন্য একটি MAX ফাংশন আছে এবং কলামগুলির জন্য নয়?

  4. মাইএসকিউএল-এ কাজ করা ছাড়া?