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

JSON_CONTAINS () MySQL में उदाहरण

MySQL में, JSON_CONTAINS() फ़ंक्शन परीक्षण करता है कि दिए गए JSON दस्तावेज़ में या वैकल्पिक रूप से, दस्तावेज़ के भीतर निर्दिष्ट पथ पर कोई निर्दिष्ट मान मिलता है या नहीं।

अगर मान मिलता है, JSON_CONTAINS() रिटर्न 1 , अन्यथा यह वापस आ जाता है 0

सिंटैक्स

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

JSON_CONTAINS(target, candidate[, path])

फ़ंक्शन 1 लौटाता है या 0 इस पर निर्भर करता है कि दिया गया candidate JSON दस्तावेज़ एक target . में समाहित है JSON दस्तावेज़, या—यदि एक path तर्क दिया गया था—क्या उम्मीदवार लक्ष्य के भीतर एक विशिष्ट पथ पर पाया जाता है।

उदाहरण 1 - दो तर्क

पथ निर्दिष्ट किए बिना मूल उपयोग प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है (यानी केवल दो तर्क प्रदान करना)।

SET @doc1 = '{"a": 1, "b": 2, "c": {"d": 3}}';
SET @doc2 = '{"c": {"d": 3}}';
SELECT JSON_CONTAINS(@doc1, @doc2) AS Result;

परिणाम:

+--------+
| Result |
+--------+
|      1 |
+--------+

दूसरे तर्क के चारों ओर घुंघराले ब्रेसिज़ पर ध्यान दें। इसे वैध JSON बनाने के लिए ये आवश्यक हैं। अगर हम घुंघराले ब्रेसिज़ को छोड़ देते हैं, तो हम एक त्रुटि के साथ समाप्त होंगे:

SET @doc1 = '{"a": 1, "b": 2, "c": {"d": 3}}';
SET @doc2 = '"c": {"d": 3}';
SELECT JSON_CONTAINS(@doc1, @doc2) AS Result;

परिणाम:

ERROR 3141 (22032): Invalid JSON text in argument 2 to function json_contains: "The document root must not be followed by other values." at position 3.

उदाहरण 2 - तीन तर्क

इस उदाहरण में मैं एक तीसरा तर्क जोड़ता हूं, एक विशिष्ट पथ को इंगित करने के लिए जिसके लिए पहले तर्क में दूसरा तर्क खोजना है।

SET @doc1 = '{"a": 1, "b": 2, "c": {"d": 3}}';
SET @doc2 = '1';
SELECT JSON_CONTAINS(@doc1, @doc2, '$.a') AS Result;

परिणाम:

+--------+
| Result |
+--------+
|      1 |
+--------+

इस मामले में, दूसरा तर्क तीसरे तर्क द्वारा निर्दिष्ट पथ पर पहले तर्क में पाया गया था।

यदि यह नहीं मिला, तो हम इसे समाप्त कर देंगे:

SET @doc1 = '{"a": 1, "b": 2, "c": {"d": 3}}';
SET @doc2 = '2';
SELECT JSON_CONTAINS(@doc1, @doc2, '$.a') AS Result;

परिणाम:

+--------+
| Result |
+--------+
|      0 |
+--------+

उदाहरण 3 - डॉट नोटेशन

आप JSON दस्तावेज़ में विशिष्ट पथ इंगित करने के लिए डॉट-नोटेशन का उपयोग कर सकते हैं।

SET @doc1 = '{"a": 1, "b": 2, "c": {"d": 3}}';
SET @doc2 = '3';
SELECT JSON_CONTAINS(@doc1, @doc2, '$.c.d') AS Result;

परिणाम:

+--------+
| Result |
+--------+
|      1 |
+--------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस इंडेक्सिंग पर गहराई से नज़र डालें

  2. PHP का उपयोग करके चेकबॉक्स का चयन करके एकाधिक पंक्तियों को हटाएं

  3. MySQL में SYSDATE() बनाम Now():क्या अंतर है?

  4. MySQL कार्यक्षेत्र क्या है?

  5. त्रुटि:त्रुटि 1005:तालिका नहीं बना सकता (त्रुटि:121)