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