MySQL में, UNHEX() फ़ंक्शन आपको MySQL में एक स्ट्रिंग को "अनहेक्स" करने की अनुमति देता है। दूसरे शब्दों में, यह आपको एक हेक्साडेसिमल मान को मानव-पठनीय स्ट्रिंग में बदलने की अनुमति देता है।
विशेष रूप से, फ़ंक्शन तर्क में वर्णों की प्रत्येक जोड़ी को हेक्साडेसिमल संख्या के रूप में व्याख्या करता है और इसे संख्या द्वारा दर्शाए गए बाइट में परिवर्तित करता है। वापसी मान एक बाइनरी स्ट्रिंग है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
UNHEX(str)
जहां str अनहेक्स करने के लिए स्ट्रिंग है।
उदाहरण 1 - मूल उपयोग
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT UNHEX('436F636F6E75742070616C6D') AS Unhexed; परिणाम:
+--------------+ | Unhexed | +--------------+ | Coconut palm | +--------------+
इसलिए मैंने एक तर्क के रूप में एक हेक्स मान प्रदान किया, और फ़ंक्शन ने उस मान को अनहेक्स किया और परिणाम लौटा दिया (जो एक बाइनरी स्ट्रिंग है)।
उदाहरण 2 - स्ट्रिंग को हेक्साडेसिमल में बदलें
हम HEX() . का उपयोग करके रिवर्स भी कर सकते हैं स्ट्रिंग को हेक्साडेसिमल मान में बदलने के लिए कार्य करता है:
SELECT HEX('Coconut palm') AS Hexed; परिणाम:
+--------------------------+ | Hexed | +--------------------------+ | 436F636F6E75742070616C6D | +--------------------------+
इसलिए, हम एक फ़ंक्शन को दूसरे में नेस्ट कर सकते हैं, और हमें बस अपना तर्क वापस मिल जाएगा:
SELECT
UNHEX(HEX('Coconut palm')) AS 'Result 1',
HEX(UNHEX('436F636F6E75742070616C6D')) AS 'Result 2'; परिणाम:
+--------------+--------------------------+ | Result 1 | Result 2 | +--------------+--------------------------+ | Coconut palm | 436F636F6E75742070616C6D | +--------------+--------------------------+
उदाहरण 3 - अमान्य हेक्साडेसिमल वर्ण
तर्क में मान्य हेक्साडेसिमल वर्ण होने चाहिए। यदि कोई भी वर्ण मान्य हेक्स वर्ण नहीं हैं, तो परिणाम NULL . होगा :
SELECT
UNHEX(' '),
UNHEX('_xyz'); परिणाम:
+------------+---------------+
| UNHEX(' ') | UNHEX('_xyz') |
+------------+---------------+
| NULL | NULL |
+------------+---------------+
उदाहरण 4 - संख्यात्मक तर्क
UNHEX() फ़ंक्शन संख्यात्मक मानों के हेक्साडेसिमल समकक्षों पर काम नहीं करता है।
मेरे कहने का एक उदाहरण यहां दिया गया है:
SELECT
HEX(1234),
UNHEX('4D2'); . चुनें परिणाम:
+-----------+--------------+
| HEX(1234) | UNHEX('4D2') |
+-----------+--------------+
| 4D2 | ? |
+-----------+--------------+
इसे प्रदर्शित करने का दूसरा तरीका यह होगा:
SELECT UNHEX(HEX(1234));
परिणाम:
+------------------+ | UNHEX(HEX(1234)) | +------------------+ | ? | +------------------+
तो यह हमें दिखाता है कि 1234 . के हेक्साडेसिमल समतुल्य 4D2 . है , और UNHEX() फ़ंक्शन उस मान को संभाल नहीं सकता है।
ऐसे मामलों में, आप CONV() . का उपयोग कर सकते हैं इसके बजाय कार्य करें:
SELECT
HEX(1234),
CONV('4D2', 16, 10),
CONV(HEX(1234), 16, 10); परिणाम:
+-----------+---------------------+-------------------------+
| HEX(1234) | CONV('4D2', 16, 10) | CONV(HEX(1234), 16, 10) |
+-----------+---------------------+-------------------------+
| 4D2 | 1234 | 1234 |
+-----------+---------------------+-------------------------+
इस उदाहरण में, हम CONV() . का उपयोग करते हैं मान को बेस-16 (हेक्साडेसिमल) से बेस-10 (दशमलव) में बदलने के लिए।