MySQL में, CHAR_LENGTH()
फ़ंक्शन वर्णों में मापी गई स्ट्रिंग की लंबाई देता है। MySQL में CHARACTER_LENGTH()
भी है , जो CHAR_LENGTH()
. का पर्याय है ।
यहां एक उदाहरण दिया गया है:
SELECT CHAR_LENGTH('Lit');
और ये रहा नतीजा:
+--------------------+ | CHAR_LENGTH('Lit') | +--------------------+ | 3 | +--------------------+
पिछला रिक्त स्थान
ध्यान दें कि CHAR_LENGTH()
इसकी गणना में अनुगामी रिक्त स्थान (जैसे स्ट्रिंग के अंत में रिक्त स्थान) शामिल हैं।
इसलिए यदि हम पिछले उदाहरण के अंत में एक स्थान जोड़ते हैं:
SELECT CHAR_LENGTH('Lit');
ये रहा परिणाम:
+---------------------+ | CHAR_LENGTH('Lit ') | +---------------------+ | 4 | +---------------------+
लेकिन हम TRIM()
. जोड़कर उस पिछली जगह को हमेशा हटा सकते हैं मिश्रण में कार्य करें:
SELECT CHAR_LENGTH(TRIM('Lit '));
ये रहा परिणाम:
+---------------------------+ | CHAR_LENGTH(TRIM('Lit ')) | +---------------------------+ | 3 | +---------------------------+
अग्रणी रिक्तियां
प्रमुख रिक्त स्थान के साथ भी यही बात है। इसलिए यदि हम प्रारंभ . में स्थान जोड़ते हैं इसके बजाय स्ट्रिंग का:
SELECT CHAR_LENGTH(' Lit');
हमें वही परिणाम मिलता है:
+---------------------+ | CHAR_LENGTH(' Lit') | +---------------------+ | 4 | +---------------------+
डेटा प्रकार
इससे कोई फर्क नहीं पड़ता कि स्ट्रिंग किस डेटा प्रकार के रूप में संग्रहीत है, यह अभी भी वही परिणाम लौटाएगा। यह LENGTH()
. के विपरीत है फ़ंक्शन, जो उन मामलों में वर्णों की संख्या को दोगुना कर देगा जहां डेटा को यूनिकोड स्ट्रिंग के रूप में संग्रहीत किया जा रहा है।
निम्नलिखित उदाहरण में, ArtistName कॉलम varchar(255) . का उपयोग करता है :
SELECT CHAR_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
ये रहा परिणाम:
+-------------------------+ | CHAR_LENGTH(ArtistName) | +-------------------------+ | 3 | +-------------------------+
और अगर हम ArtistName
. को संशोधित करते हैं यूनिकोड का उपयोग करने के लिए कॉलम:
ALTER TABLE Artists MODIFY COLUMN ArtistName VARCHAR(255) unicode;
और फिर से वही क्वेरी चलाएँ:
SELECT CHAR_LENGTH(ArtistName) FROM Artists WHERE ArtistName = 'Lit';
हमें अभी भी वही परिणाम मिलता है:
+-------------------------+ | CHAR_LENGTH(ArtistName) | +-------------------------+ | 3 | +-------------------------+
हालांकि, अगर हमने LENGTH()
. का इस्तेमाल किया होता फ़ंक्शन, परिणाम 6 होगा। ऐसा इसलिए है क्योंकि यूनिकोड के तार प्रति वर्ण 2 बाइट्स संग्रहीत करते हैं, और LENGTH()
फ़ंक्शन बाइट्स में मापी गई लंबाई लौटाता है।