MySQL में विभिन्न कार्य शामिल हैं जो हेक्साडेसिमल मानों के साथ काम करते समय आपकी सहायता कर सकते हैं। सबसे स्पष्ट कार्यों में से एक है HEX()
फ़ंक्शन, जो आपको एक स्ट्रिंग को उसके हेक्साडेसिमल समकक्ष में बदलने में सक्षम बनाता है।
हालांकि, कई बार ऐसा भी हो सकता है कि आप किसी हेक्साडेसिमल स्ट्रिंग को वापस अधिक पठनीय स्ट्रिंग में बदलना चाहें। यह लेख इसी बारे में है।
यहाँ MySQL में एक स्ट्रिंग को "अनहेक्स" करने के तीन तरीके दिए गए हैं:
- द
UNHEX()
समारोह - द
X
हेक्साडेसिमल संकेतन 0x
संकेतन
नीचे इनमें से प्रत्येक तरीके के उदाहरण दिए गए हैं।
UNHEX() फ़ंक्शन
यह एक विशेष रूप से हेक्साडेसिमल स्ट्रिंग को "अनहेक्सिंग" करने के लिए बनाया गया एक स्ट्रिंग फ़ंक्शन है।
उदाहरण:
SELECT UNHEX('4361747320616E6420646F6773');
परिणाम:
+-------------------------------------+ | UNHEX('4361747320616E6420646F6773') | +-------------------------------------+ | Cats and dogs | +-------------------------------------+
जिस तरह से UNHEX()
काम यह है कि यह तर्क में वर्णों की प्रत्येक जोड़ी को हेक्साडेसिमल संख्या के रूप में व्याख्या करता है और इसे संख्या द्वारा दर्शाए गए बाइट में परिवर्तित करता है। वापसी मान एक बाइनरी स्ट्रिंग है।
द एक्स नोटेशन
स्ट्रिंग को अनहेक्स करने का एक वैकल्पिक तरीका X
. का उपयोग करना है संकेतन।
उदाहरण:
SELECT X'4361747320616E6420646F6773';
परिणाम:
+-------------------------------+ | X'4361747320616E6420646F6773' | +-------------------------------+ | Cats and dogs | +-------------------------------+
X
संकेतन मानक SQL पर आधारित है। यह नोटेशन केस-असंवेदनशील है, इसलिए इससे कोई फर्क नहीं पड़ता कि आप अपरकेस X
का उपयोग करते हैं या नहीं या लोअरकेस। यह 0x
. के विपरीत है नोटेशन, जो केस-संवेदी है।
ध्यान दें कि X
अंकन के लिए अंकों की एक सम संख्या की आवश्यकता होती है। यदि आपके पास विषम संख्या में अंक हैं, तो आप इसे एक अग्रणी शून्य से पैड कर सकते हैं।
0x संकेतन
और स्ट्रिंग को अनहेक्स करने का तीसरा तरीका 0x
. का उपयोग करना है संकेतन।
उदाहरण:
SELECT 0x4361747320616E6420646F6773;
परिणाम:
+------------------------------+ | 0x4361747320616E6420646F6773 | +------------------------------+ | Cats and dogs | +------------------------------+
0x
संकेतन ODBC पर आधारित है, जिसके लिए हेक्साडेसिमल स्ट्रिंग्स का उपयोग अक्सर BLOB कॉलम के लिए मूल्यों की आपूर्ति के लिए किया जाता है। जैसा कि बताया गया है, 0x
नोटेशन केस-संवेदी है, इसलिए यदि आप अपरकेस X
. का उपयोग करते हैं तो यह काम नहीं करेगा ।
0x
अंकन अंकों की एक विषम संख्या के साथ काम करता है, लेकिन केवल इसलिए कि यह किसी भी विषम संख्या को एक अग्रणी शून्य के रूप में व्याख्यायित करेगा (इस प्रकार इसे सम बना देगा)।
एक नंबर अनहेक्स करें
ध्यान दें कि वह HEX()
संख्याओं पर कार्य नहीं करता है। ऐसा करने के लिए, CONV()
. का उपयोग करें इसके बजाय फ़ंक्शन (MySQL में किसी संख्या को कैसे अनहेक्स करें देखें)।