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

JSON_INSERT () - MySQL में JSON दस्तावेज़ में मान डालें

MySQL में, JSON_INSERT() फ़ंक्शन JSON दस्तावेज़ में एक मान सम्मिलित करता है और परिणाम देता है।

आप पहले तर्क के रूप में JSON दस्तावेज़ प्रदान करते हैं, उसके बाद सम्मिलित करने के लिए पथ, उसके बाद सम्मिलित करने के लिए मान प्रदान करते हैं।

सिंटैक्स

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

JSON_INSERT(json_doc, path, val[, path, val] ...)

कहां:

  • json_doc JSON दस्तावेज़ है।
  • path उस तत्व का पथ है जिसके लिए नया मान सम्मिलित करना है।
  • val नया मान है जो डाला जाएगा।

पथ-मान युग्मों का मूल्यांकन बाएँ से दाएँ किया जाता है। एक जोड़ी का मूल्यांकन करके तैयार किया गया दस्तावेज़ नया मान बन जाता है जिसके विरुद्ध अगले जोड़े का मूल्यांकन किया जाता है।

उदाहरण 1 - मूल उपयोग

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

SELECT JSON_INSERT('{"a": 1, "b": 2}', '$.c', 3) AS 'Result';

परिणाम:

+--------------------------+
| Result                   |
+--------------------------+
| {"a": 1, "b": 2, "c": 3} |
+--------------------------+

तो तीसरा तर्क निर्दिष्ट पथ पर सरणी में डाला गया है। इस मामले में, मैं $.c . का उपयोग करता हूं पथ के लिए और 3 मूल्य डालने के लिए। इसके परिणामस्वरूप "c": 3 . की कुंजी/मान जोड़ी बनती है ।

यहां एक और उदाहरण दिया गया है:

SELECT 
  JSON_INSERT('{"Name": "Homer", "Gender": "Male"}', '$.Age', 39) AS 'Result';

परिणाम:

+------------------------------------------------+
| Result                                         |
+------------------------------------------------+
| {"Age": 39, "Name": "Homer", "Gender": "Male"} |
+------------------------------------------------+

उदाहरण 2 - किसी मौजूदा पथ को अधिलेखित करने का प्रयास करना

दस्तावेज़ में मौजूदा पथ के लिए पथ-मान युग्म को अनदेखा कर दिया जाता है और मौजूदा दस्तावेज़ मान को अधिलेखित नहीं करता है।

इसलिए यदि हम Name . पर मान डालने के लिए पिछले उदाहरण को संशोधित करते हैं (जो पहले से मौजूद है), कोई प्रविष्टि नहीं होती है:

SELECT 
  JSON_INSERT('{"Name": "Homer", "Gender": "Male"}', '$.Name', "Bart") AS 'Result';

परिणाम:

+-------------------------------------+
| Result                              |
+-------------------------------------+
| {"Name": "Homer", "Gender": "Male"} |
+-------------------------------------+

उदाहरण 3 - सरणी

आप मौजूदा सरणी के अंत से पहले के पथ का उपयोग करके किसी सरणी में मान सम्मिलित कर सकते हैं। उदाहरण:

SELECT JSON_INSERT('[1, 2, 3]', '$[3]', 4) AS 'Result';

परिणाम:

+--------------+
| Result       |
+--------------+
| [1, 2, 3, 4] |
+--------------+

हालांकि, यदि आप ऐसे पथ का उपयोग करते हैं जो पहले से ही सरणी में मौजूद है, तो सरणी अपरिवर्तित रहेगी:

SELECT JSON_INSERT('[1, 2, 3]', '$[1]', 4) AS 'Result';

परिणाम:

+-----------+
| Result    |
+-----------+
| [1, 2, 3] |
+-----------+

यदि मौजूदा मान एक सरणी नहीं है, तो इसे एक सरणी के रूप में स्वतः लपेटा जाता है, फिर नए मान के साथ बढ़ाया जाता है। उदाहरण:

SELECT JSON_INSERT('{"a": 1, "b": 2}', '$[2]', 3) AS 'Result';

परिणाम:

+-----------------------+
| Result                |
+-----------------------+
| [{"a": 1, "b": 2}, 3] |
+-----------------------+

लेकिन एक बार फिर, यदि आप पहले से मौजूद पथ पर कोई मान डालने का प्रयास करते हैं, तो JSON दस्तावेज़ अपरिवर्तित रहता है:

SELECT JSON_INSERT('{"a": 1, "b": 2}', '$[0]', 3) AS 'Result';

परिणाम:

+------------------+
| Result           |
+------------------+
| {"a": 1, "b": 2} |
+------------------+

उदाहरण 4 - एक बड़ा JSON दस्तावेज़

यहां एक (थोड़ा) बड़ा JSON दस्तावेज़ वाला एक उदाहरण दिया गया है।

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_INSERT(@data, '$.Person.Hobbies[2]', "Base Jumping") AS 'Result';

परिणाम:

+----------------------------------------------------------------------------------+
| Result                                                                           |
+----------------------------------------------------------------------------------+
| {"Person": {"Name": "Homer", "Hobbies": ["Eating", "Sleeping", "Base Jumping"]}} |
+----------------------------------------------------------------------------------+

यह भी देखें JSON_ARRAY_INSERT() और JSON_ARRAY_APPEND() यदि आपको JSON सरणी में डेटा डालने या जोड़ने की आवश्यकता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL शून्य मान डालें

  2. एक्ज़ीक्यूटिव के साथ डेटा मैनिपुलेशन स्टेटमेंट जारी नहीं कर सकता ()

  3. MySQL संग्रहीत कार्यों और प्रक्रियाओं को कैसे बनाएं और निष्पादित करें

  4. भौतिक फ़ाइलों से MySQL डेटाबेस को पुनर्स्थापित करना

  5. MySQL को मारियाडीबी 10 में अपग्रेड करें (भाग 1 - मारियाडीबी 5.5 स्थापित करें)