কম্পিউটার

MySQL LENGTH() এবং CHAR_LENGTH() ফাংশনের মধ্যে পার্থক্য কী?


উভয় ফাংশনই স্ট্রিং ফাংশন এবং স্ট্রিং-এ উপস্থিত অক্ষরের সংখ্যা প্রদান করে। কিন্তু তারা এই ধারণার মধ্যে ভিন্ন যে CHAR_LENGTH() ফাংশন 'অক্ষর'-এ স্ট্রিং দৈর্ঘ্য পরিমাপ করে যেখানে LENGTH() ফাংশন 'বাইটে' স্ট্রিং দৈর্ঘ্য পরিমাপ করে। অন্য কথায়, আমরা বলতে পারি যে CHAR_LENGTH() ফাংশনটি মাল্টি-বাইট নিরাপদ অর্থাৎ এটি অক্ষরগুলি একক-বাইট বা মাল্টি-বাইট কিনা তা উপেক্ষা করে। উদাহরণস্বরূপ, যদি একটি স্ট্রিংয়ে চারটি 2-বাইট অক্ষর থাকে তাহলে LENGTH().

ফাংশনটি 8 প্রদান করবে, যেখানে CHAR_LENGTH() ফাংশন 4 প্রদান করবে৷ এই অর্থে, আমরা বলতে পারি যে CHAR_LENGTH() LENGTH() ফাংশনের চেয়ে সুনির্দিষ্ট ফলাফল দেয়৷

পার্থক্যটি ইউনিকোডের জন্য বিশেষভাবে প্রাসঙ্গিক, যেখানে বেশিরভাগ অক্ষর দুটি বাইটে এনকোড করা হয় বা UTF-8 এর জন্য প্রাসঙ্গিক যেখানে বাইটের সংখ্যা পরিবর্তিত হয়। এটি নীচের উদাহরণে প্রদর্শিত হয় -

উদাহরণ

নীচের এই উদাহরণে, প্রথমত, 'গৌরব' স্ট্রিংটি ucs2-এ রূপান্তরিত হয়েছে , এটি ইউনিকোড এবং 2-বাইট অক্ষর, অক্ষর সেট ধারণ করে। তারপরে আমরা ফলাফল সেট থেকে পার্থক্যটি পর্যবেক্ষণ করতে পারি যেমন LENGTH() দৈর্ঘ্য অনেক বাইটে দেয় এবং CHAR_LENGTH() অনেকগুলি অক্ষরে দৈর্ঘ্য দেয়৷

mysql> SET @A = CONVERT('Gaurav' USING ucs2);
Query OK, 0 rows affected (0.15 sec)

mysql> Select Char_length(@A), LENGTH(@A);

+-----------------+------------+
| Char_length(@A) | LENGTH(@A) |
+-----------------+------------+
| 6               | 12         |
+-----------------+------------+

1 row in set (0.03 sec)

এবং এখন, নীচের উদাহরণে, আমরা UTF-8-এ একটি বিশেষ অক্ষর ব্যবহার করছি , বাইট একটি সংখ্যা পরিবর্তিত, অক্ষর সেট. তারপর আমরা ফলাফল সেট থেকে পার্থক্য পর্যবেক্ষণ করতে পারি।

mysql> SET @B = CONVERT('©' USING utf8);
Query OK, 0 rows affected (0.15 sec)

mysql> Select CHAR_LENGTH(@B);

+-----------------------+
| CHAR_LENGTH(@B)       |
+-----------------------+
| 1                     |
+-----------------------+

1 row in set (0.00 sec)

mysql> Select LENGTH(@B);

+---------------+
| LENGTH(@B)    |
+---------------+
| 2             |
+---------------+

1 row in set (0.00 sec)

  1. মাইএসকিউএল-এ int এবং পূর্ণসংখ্যার মধ্যে পার্থক্য কী?

  2. MySQL এ 'AND' এবং '&&' এর মধ্যে পার্থক্য?

  3. মাইএসকিউএল-এ TINYINT(1) এবং বুলিয়ানের মধ্যে পার্থক্য কী?

  4. MySQL এ!=NULL এবং IS NOT NULL এর মধ্যে পার্থক্য কি?