अगर आप SQL सर्वर के साथ लंबे समय से काम कर रहे हैं, तो हो सकता है कि आपको Datalength()
का सामना करना पड़ा हो समारोह। यह फ़ंक्शन किसी व्यंजक का प्रतिनिधित्व करने के लिए उपयोग किए गए बाइट्स की संख्या देता है।
लेकिन अगर आप MySQL में चले गए हैं, तो हो सकता है कि आप एक ऐसे फ़ंक्शन की तलाश कर रहे हों जो वही काम करता हो।
MySQL में, Length()
फ़ंक्शन मूल रूप से वही काम करता है जो T-SQL Datalength()
फ़ंक्शन SQL सर्वर (और Azure) में करता है। MySQL का Length()
फ़ंक्शन बाइट्स में मापी गई स्ट्रिंग की लंबाई देता है।
उदाहरण
प्रदर्शित करने के लिए यहां कुछ उदाहरण दिए गए हैं।
एसक्यूएल सर्वर
यहां SQL सर्वर (T-SQL का उपयोग करके) के लिए एक बुनियादी उदाहरण दिया गया है:
SELECT DATALENGTH('Cat') AS Datalength;
परिणाम:
Datalength ---------- 3
MySQL
यहाँ MySQL में समकक्ष क्वेरी है:
SELECT LENGTH('Cat') AS Length;
परिणाम:
+--------+ | Length | +--------+ | 3 | +--------+
दोनों माप बाइट्स
लेकिन सबसे महत्वपूर्ण बात यह है कि दोनों फ़ंक्शन बाइट्स . को मापते हैं , नहीं अक्षर . इसलिए यदि डेटा को यूनिकोड स्ट्रिंग के रूप में संग्रहीत किया जाता है, तो बाइट्स की संख्या वर्णों की संख्या से दोगुनी होगी। ऐसा इसलिए है क्योंकि यूनिकोड के तार प्रति वर्ण 2 बाइट्स का उपयोग करते हैं।
SQL सर्वर में यूनिकोड कॉलम के विरुद्ध अनिवार्य रूप से एक ही क्वेरी को चलाने का एक उदाहरण नीचे दिया गया है, फिर MySQL में।
एसक्यूएल सर्वर
SELECT DATALENGTH(ArtistName) AS DataLength FROM Artists WHERE ArtistName = 'Lit';
परिणाम:
DataLength ---------- 6
MySQL
SELECT LENGTH(ArtistName) AS Length FROM Artists WHERE ArtistName = 'Lit';
परिणाम:
+--------+ | Length | +--------+ | 6 | +--------+
यह ध्यान रखना महत्वपूर्ण है कि इन उदाहरणों के 6 लौटने का कारण डेटाबेस में उपयोग किए जाने वाले डेटा प्रकार के कारण है। यदि डेटा को यूनिकोड के रूप में संग्रहीत नहीं किया गया था, तो दोनों उदाहरण 3 भी लौटा सकते हैं।
वर्ण बनाम बाइट्स
SQL सर्वर उदाहरण में, यदि हम Len()
. का उपयोग करते हैं इसके बजाय फ़ंक्शन, यह 3 वापस आ जाता। ऐसा इसलिए है क्योंकि Len()
वर्णों की संख्या देता है - बाइट्स नहीं।
इसी तरह MySQL के लिए, यदि हम Char_Length()
फ़ंक्शन, यह 3 भी लौटाएगा, क्योंकि Char_Length()
बाइट्स के बजाय वर्णों की संख्या लौटाता है।