MySQL में, WEIGHT_STRING()
फ़ंक्शन इनपुट स्ट्रिंग के लिए वज़न स्ट्रिंग देता है। रिटर्न वैल्यू एक बाइनरी स्ट्रिंग है जो स्ट्रिंग की तुलना और सॉर्टिंग वैल्यू का प्रतिनिधित्व करती है।
यदि इनपुट स्ट्रिंग एक गैर-बाइनरी मान है, तो वापसी मान में स्ट्रिंग के लिए संयोजन भार होता है। यदि यह एक बाइनरी मान है, तो परिणाम इनपुट स्ट्रिंग के समान है। ऐसा इसलिए है क्योंकि बाइनरी स्ट्रिंग में प्रत्येक बाइट का वजन बाइट मान होता है।
यह फ़ंक्शन आंतरिक उपयोग के लिए एक डिबगिंग फ़ंक्शन है। इसका उपयोग कॉलेशन के परीक्षण और डिबगिंग के लिए किया जा सकता है। ध्यान दें कि MySQL के संस्करणों के बीच इसका व्यवहार बदल सकता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
WEIGHT_STRING(str [AS {CHAR|BINARY}(N)] [flags])
जहां str
इनपुट स्ट्रिंग है। वैकल्पिक AS
क्लॉज आपको इनपुट स्ट्रिंग को किसी दिए गए प्रकार और लंबाई में डालने की अनुमति देता है। वैकल्पिक flags
तर्क वर्तमान में MySQL (संस्करण 8.0 के अनुसार) में उपयोग नहीं किया जाता है।
उदाहरण 1 - मूल उपयोग
गैर-बाइनरी इनपुट स्ट्रिंग का उपयोग करके उपयोग का एक मूल उदाहरण यहां दिया गया है:
SELECT HEX(WEIGHT_STRING('Cat'));
परिणाम:
+---------------------------+ | HEX(WEIGHT_STRING('Cat')) | +---------------------------+ | 1C7A1C471E95 | +---------------------------+
ध्यान दें कि मैं HEX()
. का उपयोग करता हूं WEIGHT_STRING()
प्रदर्शित करने के लिए फ़ंक्शन नतीजा। ऐसा इसलिए है क्योंकि WEIGHT_STRING()
एक द्विआधारी परिणाम देता है। हम उपयोग कर सकते हैं HEX()
परिणाम को प्रिंट करने योग्य रूप में प्रदर्शित करने के लिए।
अगर मैं HEX()
का इस्तेमाल नहीं करता/करती हूं इस उदाहरण में मुझे यह मिलता है:
SELECT WEIGHT_STRING('Cat');
परिणाम:
+----------------------+ | WEIGHT_STRING('Cat') | +----------------------+ | zG? | +----------------------+
तो बस स्पष्ट होने के लिए, यहाँ स्ट्रिंग, उस स्ट्रिंग का हेक्साडेसिमल प्रतिनिधित्व और उसके वजन स्ट्रिंग का हेक्साडेसिमल प्रतिनिधित्व है:
SET @str = 'Cat'; SELECT @str, HEX(@str), HEX(WEIGHT_STRING(@str));
परिणाम:
+------+-----------+--------------------------+ | @str | HEX(@str) | HEX(WEIGHT_STRING(@str)) | +------+-----------+--------------------------+ | Cat | 436174 | 1C7A1C471E95 | +------+-----------+--------------------------+
उदाहरण 2 - AS क्लॉज
यहां AS
. का उपयोग करके एक उदाहरण दिया गया है इनपुट स्ट्रिंग को किसी दिए गए प्रकार और लंबाई में डालने के लिए क्लॉज।
SET @str = 'Cat'; SELECT HEX(WEIGHT_STRING(@str AS CHAR(3))) 'Char 3', HEX(WEIGHT_STRING(@str AS CHAR(8))) 'Char 8', HEX(WEIGHT_STRING(@str AS BINARY(3))) 'Binary 3', HEX(WEIGHT_STRING(@str AS BINARY(8))) 'Binary 8';
परिणाम:
+--------------+--------------+----------+------------------+ | Char 3 | Char 8 | Binary 3 | Binary 8 | +--------------+--------------+----------+------------------+ | 1C7A1C471E95 | 1C7A1C471E95 | 436174 | 4361740000000000 | +--------------+--------------+----------+------------------+
उदाहरण 3 - संयोजन
निम्नलिखित दो उदाहरण प्रदर्शित करते हैं कि कैसे उपयोग किए जा रहे संयोजन के आधार पर एक स्ट्रिंग में एक अलग वजन स्ट्रिंग हो सकती है। पहले उदाहरण में प्रयुक्त संयोजन उच्चारण-असंवेदनशील और केस-असंवेदनशील है। दूसरे उदाहरण में प्रयुक्त संयोजन उच्चारण-संवेदनशील और केस-संवेदी है।
SET @upper = _utf8mb4 'CAT' COLLATE utf8mb4_0900_ai_ci; SET @lower = lcase(@upper); SELECT @upper 'String', HEX(@upper) 'Hex', HEX(WEIGHT_STRING(@upper)) 'Weight String' UNION ALL SELECT @lower, HEX(@lower), HEX(WEIGHT_STRING(@lower));
परिणाम:
+--------+--------+---------------+ | String | Hex | Weight String | +--------+--------+---------------+ | CAT | 434154 | 1C7A1C471E95 | | cat | 636174 | 1C7A1C471E95 | +--------+--------+---------------+
और यहां एक ही उदाहरण है, उच्चारण-संवेदनशील और केस-संवेदी संयोजन को छोड़कर।
SET @upper = _utf8mb4 'CAT' COLLATE utf8mb4_0900_as_cs; SET @lower = lcase(@upper); SELECT @upper 'String', HEX(@upper) 'Hex', HEX(WEIGHT_STRING(@upper)) 'Weight String' UNION ALL SELECT @lower, HEX(@lower), HEX(WEIGHT_STRING(@lower));
परिणाम:
+--------+--------+----------------------------------------------+ | String | Hex | Weight String | +--------+--------+----------------------------------------------+ | CAT | 434154 | 1C7A1C471E9500000020002000200000000800080008 | | cat | 636174 | 1C7A1C471E9500000020002000200000000200020002 | +--------+--------+----------------------------------------------+