मारियाडीबी में, HEX()
एक अंतर्निहित स्ट्रिंग फ़ंक्शन है जो अपने तर्क का एक हेक्साडेसिमल स्ट्रिंग प्रतिनिधित्व देता है।
यह इस तरह काम करता है:
- यदि इसका तर्क एक संख्या है,
HEX()
संख्या के हेक्साडेसिमल मान का एक स्ट्रिंग प्रतिनिधित्व देता है। - यदि तर्क एक स्ट्रिंग है,
HEX()
स्ट्रिंग का एक हेक्साडेसिमल स्ट्रिंग प्रतिनिधित्व देता है, जहां स्ट्रिंग में प्रत्येक वर्ण का प्रत्येक बाइट दो हेक्साडेसिमल अंकों में परिवर्तित हो जाता है। - MariaDB 10.5.0 में शुरू,
HEX()
एकINET6
. के साथ तर्क अंतर्निहित 16-बाइट बाइनरी स्ट्रिंग का हेक्साडेसिमल प्रतिनिधित्व देता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
HEX(N_or_S)
जहां N_or_S
एक संख्या या एक स्ट्रिंग है।
उदाहरण
यहां एक बुनियादी उदाहरण दिया गया है:
SELECT HEX(15);
परिणाम:
+---------+ | HEX(15) | +---------+ | F | +---------+
यहाँ, हमें 15
. का हेक्साडेसिमल मान मिला है , जो F
. है ।
दशमलव में, गिनती इस प्रकार होगी:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
लेकिन हेक्साडेसिमल में, यह इस प्रकार है:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ए, बी, सी, डी, ई, एफ।
तो अगर हमारी संख्या 0 और 9 के बीच होती, तो हमें उसके दशमलव समकक्ष के समान मान मिलता।
यहां एक और उदाहरण दिया गया है जो दर्शाता है कि कैसे हेक्साडेसिमल सिस्टम अपने मूल्यों को बढ़ाता है:
SELECT
HEX(0),
HEX(1),
HEX(2),
HEX(3),
HEX(4),
HEX(5),
HEX(6),
HEX(7),
HEX(8),
HEX(9),
HEX(10),
HEX(11),
HEX(12),
HEX(13),
HEX(14),
HEX(15),
HEX(16),
HEX(17),
HEX(18),
HEX(19),
HEX(20),
HEX(21),
HEX(22),
HEX(23),
HEX(24),
HEX(25),
HEX(26),
HEX(27),
HEX(28),
HEX(29),
HEX(30),
HEX(31),
HEX(32),
HEX(789456768);
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
HEX(0): 0 HEX(1): 1 HEX(2): 2 HEX(3): 3 HEX(4): 4 HEX(5): 5 HEX(6): 6 HEX(7): 7 HEX(8): 8 HEX(9): 9 HEX(10): A HEX(11): B HEX(12): C HEX(13): D HEX(14): E HEX(15): F HEX(16): 10 HEX(17): 11 HEX(18): 12 HEX(19): 13 HEX(20): 14 HEX(21): 15 HEX(22): 16 HEX(23): 17 HEX(24): 18 HEX(25): 19 HEX(26): 1A HEX(27): 1B HEX(28): 1C HEX(29): 1D HEX(30): 1E HEX(31): 1F HEX(32): 20 HEX(789456768): 2F0E2780
स्ट्रिंग्स
जैसा कि उल्लेख किया गया है, यदि तर्क एक स्ट्रिंग है, HEX()
स्ट्रिंग का एक हेक्साडेसिमल स्ट्रिंग प्रतिनिधित्व देता है, जहां स्ट्रिंग में प्रत्येक वर्ण का प्रत्येक बाइट दो हेक्साडेसिमल अंकों में परिवर्तित हो जाता है।
उदाहरण:
SELECT
HEX('a'),
HEX('aa'),
HEX('A'),
HEX('AA'),
HEX('b'),
HEX('bb'),
HEX('B'),
HEX('BB'),
HEX('Cat'),
HEX('Dog'),
HEX('Paws & Claws'),
HEX('Zebra');
परिणाम (ऊर्ध्वाधर आउटपुट का उपयोग करके):
HEX('a'): 61 HEX('aa'): 6161 HEX('A'): 41 HEX('AA'): 4141 HEX('b'): 62 HEX('bb'): 6262 HEX('B'): 42 HEX('BB'): 4242 HEX('Cat'): 436174 HEX('Dog'): 446F67 HEX('Paws & Claws'): 50617773202620436C617773 HEX('Zebra'): 5A65627261
INET6
मारियाडीबी 10.5.0 में शुरू, HEX()
एक INET6
. के साथ तर्क अंतर्निहित 16-बाइट बाइनरी स्ट्रिंग का हेक्साडेसिमल प्रतिनिधित्व देता है।
उदाहरण:
SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6));
परिणाम:
+---------------------------------------------------------------+ | HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) | +---------------------------------------------------------------+ | 20010DB83C4D0015000000001A2F1A2B | +---------------------------------------------------------------+
यहाँ यह फिर से है, लेकिन उसी IPv6 पते के संक्षिप्त रूप का उपयोग कर रहा है:
SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6));
परिणाम:
+---------------------------------------------------+ | HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) | +---------------------------------------------------+ | 20010DB83C4D0015000000001A2F1A2B | +---------------------------------------------------+
अशक्त तर्क
पासिंग null
करने के लिए HEX()
परिणाम null
:
SELECT HEX(null);
परिणाम:
+-----------+ | HEX(null) | +-----------+ | NULL | +-----------+
कोई तर्क नहीं पारित करना
कॉलिंग HEX()
कोई तर्क पारित किए बिना त्रुटि उत्पन्न होती है:
SELECT HEX();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'HEX'