Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

MySQL LENGTH () और CHAR_LENGTH () फ़ंक्शन के बीच क्या अंतर है?

<घंटा/>

दोनों फ़ंक्शन स्ट्रिंग फ़ंक्शन हैं और स्ट्रिंग में मौजूद वर्णों की संख्या लौटाते हैं। लेकिन वे इस अवधारणा में भिन्न हैं कि CHAR_LENGTH () फ़ंक्शन 'वर्णों' में स्ट्रिंग की लंबाई को मापता है जबकि LENGTH () फ़ंक्शन स्ट्रिंग की लंबाई को 'बाइट्स' में मापता है। दूसरे शब्दों में, हम कह सकते हैं कि CHAR_LENGTH() फ़ंक्शन मल्टी-बाइट सुरक्षित है यानी यह अनदेखा करता है कि वर्ण सिंगल-बाइट या मल्टी-बाइट हैं या नहीं। उदाहरण के लिए, यदि एक स्ट्रिंग में चार 2-बाइट वर्ण हैं तो LENGTH()।

फ़ंक्शन 8 लौटाएगा, जबकि CHAR_LENGTH () फ़ंक्शन 4 लौटाएगा। इस अर्थ में, हम कह सकते हैं कि CHAR_LENGTH () LENGTH () फ़ंक्शन की तुलना में सटीक परिणाम देता है।

अंतर यूनिकोड के लिए विशेष रूप से प्रासंगिक है, जिसमें अधिकांश वर्ण दो बाइट्स में एन्कोड किए गए हैं या यूटीएफ -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. MySQL में 'AND' और '&&' के बीच अंतर?

    नोट:AND और &&के बीच केवल एक अंतर है कि AND एक मानक है जबकि &&स्वामित्व सिंटैक्स है। उपरोक्त कथन को छोड़कर, AND और &&में कोई अंतर नहीं है। आइए सभी शर्तों को देखें। AND और &&का परिणाम हमेशा 1 या 0 होगा। जैसा कि हम जानते हैं कि AND और &&दोनों लॉजिकल ऑपरेटर हैं, यदि एक से अधिक ऑपरेंड हैं और उनमें से क

  1. MySQL में TINYINT(1) और बूलियन में क्या अंतर है?

    टिन्यिनट (1) और बूलियन के बीच कोई अंतर नहीं है। कीवर्ड बूल या बूलियन आंतरिक रूप से TINYINT(1) में परिवर्तित हो जाता है या हम कह सकते हैं कि बूल या बूलियन TINYINT(1) का पर्याय हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(ismared Boolean);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.77 सेकंड) आइए तालि

  1. MySQL में !=NULL और IS NOT NULL में क्या अंतर है?

    यदि आप किसी मान की तुलना !=NULL से करते हैं तो यह NULL देता है। तो, !=NULL अर्थहीन है। !=NULL और IS NOT NULL के बीच अंतर देखने के लिए, आइए पहले एक टेबल बनाएं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable1970 (वैल्यू इंट);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टे