मारियाडीबी में, JSON_UNQUOTE()
एक अंतर्निहित फ़ंक्शन है जो JSON मान से उद्धरण हटाता है। दूसरे शब्दों में, यह एक JSON मान को "अनकोट" करता है।
सिंटैक्स
वाक्य रचना इस प्रकार है:
JSON_UNQUOTE(val)
उदाहरण
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।
SELECT JSON_UNQUOTE('"Eggs"');
परिणाम:
+------------------------+ | JSON_UNQUOTE('"Eggs"') | +------------------------+ | Eggs | +------------------------+
एस्केप कैरेक्टर
यदि मान में बैकस्लैश वर्ण है (\
), इसे आमतौर पर अनदेखा किया जाता है। हालांकि, बैकस्लैश से जुड़े कुछ अनुक्रमों का विशेष अर्थ हो सकता है, और JSON_UNQUOTE()
के परिणाम को प्रभावित कर सकता है। .
यह इस पर निर्भर करेगा कि SQL मोड NO_BACKSLASH_ESCAPES
पर सेट है या नहीं . जब SQL मोड NO_BACKSLASH_ESCAPES
पर सेट हो , यह बैकस्लैश वर्ण को स्ट्रिंग्स के भीतर एक एस्केप वर्ण के रूप में उपयोग करने को अक्षम करता है, जिससे यह एक सामान्य वर्ण के बराबर हो जाता है।
अन्यथा, निम्नलिखित क्रम सही रहेंगे:
एस्केप अनुक्रम | चरित्र |
---|---|
\" | दोहरा उद्धरण (" ) |
\b | बैकस्लैश |
\f | फ़ॉर्मफ़ीड |
\n | न्यूलाइन (लाइनफीड) |
\r | कैरिज रिटर्न |
\t | टैब |
\\ | बैकस्लैश (\ ) |
\uXXXX | यूनिकोड मान के लिए UTF-8 बाइट्स XXXX |
उदाहरण:
SELECT JSON_UNQUOTE('Feeling\tGood');
परिणाम:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling Good | +-------------------------------+
यहाँ, मैंने \t
. का उपयोग किया है स्ट्रिंग के भीतर एक टैब वर्ण जोड़ने का क्रम।
अगर मैं SQL मोड को NO_BACKSLASH_ESCAPES
. पर सेट करता हूँ , अनुक्रम का कोई विशेष अर्थ नहीं है, और शाब्दिक अनुक्रम बिना व्याख्या के आउटपुट में शामिल है:
SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SELECT JSON_UNQUOTE('Feeling\tGood');
परिणाम:
+-------------------------------+ | JSON_UNQUOTE('Feeling\tGood') | +-------------------------------+ | Feeling\tGood | +-------------------------------+
अशक्त तर्क
अगर तर्क NULL
है , परिणाम NULL
. है :
SELECT JSON_UNQUOTE(null);
परिणाम:
+--------------------+ | JSON_UNQUOTE(null) | +--------------------+ | NULL | +--------------------+
गलत पैरामीटर गणना
कॉलिंग JSON_UNQUOTE()
बिना तर्क के त्रुटि उत्पन्न होती है:
SELECT JSON_UNQUOTE();
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'
जब आप बहुत अधिक तर्क देते हैं तो ऐसा ही होता है:
SELECT JSON_UNQUOTE('a', 'b');
परिणाम:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'