Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

JSON_UNQUOTE () - MySQL में JSON दस्तावेज़ से उद्धरण निकालें

MySQL में, JSON_UNQUOTE() फ़ंक्शन एक JSON दस्तावेज़ को "अनकोट" करता है और परिणाम को utf8mb4 . के रूप में लौटाता है स्ट्रिंग।

आप JSON दस्तावेज़ को एक तर्क के रूप में प्रदान करते हैं, और फ़ंक्शन बाकी काम करेगा।

सिंटैक्स

वाक्य रचना इस प्रकार है:

JSON_UNQUOTE(json_val)

जहां json_val वह JSON दस्तावेज़ है जिसे आप गैर-उद्धृत करना चाहते हैं।

उदाहरण

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है।

SET @data = '"Homer Simpson"';
SELECT 
  @data Original, 
  JSON_UNQUOTE(@data) Unquoted;

परिणाम:

+-----------------+---------------+
| Original        | Unquoted      |
+-----------------+---------------+
| "Homer Simpson" | Homer Simpson |
+-----------------+---------------+

एस्केप कैरेक्टर

जिस तरह से यह फ़ंक्शन एस्केप वर्णों को संभालता है वह इस बात पर निर्भर करता है कि NO_BACKSLASH_ESCAPES सक्षम या अक्षम है।

जब NO_BACKSLASH_ESCAPES अक्षम हो

NO_BACKSLASH_ESCAPES MySQL 8.0 में डिफ़ॉल्ट रूप से मोड अक्षम है।

अगर हम \t . शामिल करते हैं तो यहां क्या होता है एक स्ट्रिंग के भीतर एक टैब वर्ण निर्दिष्ट करने के लिए जब NO_BACKSLASH_ESCAPES अक्षम है, और बिना JSON_UNQUOTE() . का उपयोग करके ।

SET @data = '"Homer \t Simpson"';
SELECT 
  @data Original;

परिणाम:

+-------------------+
| Original          |
+-------------------+
| "Homer 	 Simpson" |
+-------------------+

और अगर हम JSON_UNQUOTE() . का उपयोग करते हैं तो क्या होता है :

SET @data = '"Homer \t Simpson"';
SELECT JSON_UNQUOTE(@data) Unquoted;

परिणाम:

ERROR 3141 (22032): Invalid JSON text in argument 1 to function json_unquote: "Invalid escape character in string." at position 7.

हम दो बैकस्लैश का उपयोग करके इसे दूर कर सकते हैं (\\t ) हालांकि, ध्यान रखें कि ऐसा करने से परिणाम बदल जाएगा जब नहीं JSON_UNQUOTE() . का उपयोग करके ।

SET @data = '"Homer \\t Simpson"';
SELECT 
  @data Original, 
  JSON_UNQUOTE(@data) Unquoted;

परिणाम:

+--------------------+-----------------+
| Original           | Unquoted        |
+--------------------+-----------------+
| "Homer \t Simpson" | Homer 	 Simpson |
+--------------------+-----------------+

जब NO_BACKSLASH_ESCAPES सक्षम हो

यहां बताया गया है कि जब हम NO_BACKSLASH_ESCAPES enable को सक्षम करते हैं तो क्या होता है पिछला कथन चलाने से पहले:

SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SET @data = '"Homer \\t Simpson"';
SELECT 
  @data Original, 
  JSON_UNQUOTE(@data) Unquoted;

परिणाम:

+---------------------+------------------+
| Original            | Unquoted         |
+---------------------+------------------+
| "Homer \\t Simpson" | Homer \t Simpson |
+---------------------+------------------+

और अगर हम पहली बैकस्लैश हटा दें तो क्या होगा:

SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
SET @data = '"Homer \t Simpson"';
SELECT 
  @data Original, 
  JSON_UNQUOTE(@data) Unquoted;

परिणाम:

+--------------------+-----------------+
| Original           | Unquoted        |
+--------------------+-----------------+
| "Homer \t Simpson" | Homer 	 Simpson |
+--------------------+-----------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. वे मान खोजें जिनमें MySQL में संख्याएँ नहीं हैं

  2. PHP 5.5 के पासवर्ड_हैश और पासवर्ड_सत्यापन फ़ंक्शन का उपयोग करना

  3. MySQL क्वेरी का उपयोग करके संपूर्ण तालिका में टेक्स्ट ढूंढें और बदलें

  4. MySQL में LENGTH () क्या है?

  5. लॉग-स्लो-क्वेरी के लिए MySQL लॉन्ग क्वेरी टाइम वैल्यू बदलें या सेट करें