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

JSON उप-घटकों को निकालने के लिए ऑपरेटर

SQLite संस्करण 3.38.0 (22 फरवरी 2022 को जारी) से शुरू होकर, अब हम -> का उपयोग कर सकते हैं और ->> JSON दस्तावेज़ों के उप-घटकों को निकालने के लिए ऑपरेटर।

इन ऑपरेटरों का उद्देश्य समकक्ष MySQL और PostgreSQL ऑपरेटरों के साथ संगत होना है।

साथ ही, SQLite 3.38.0 से शुरू होकर, JSON फ़ंक्शन अब बिल्ट-इन हैं। इसलिए, अब -DSQLITE_ENABLE_JSON1 का उपयोग करना आवश्यक नहीं है JSON समर्थन को सक्षम करने के लिए संकलन-समय विकल्प।

सिंटैक्स

इन ऑपरेटरों के काम करने का तरीका इस प्रकार है:

json -> path
json ->> path

जहां json JSON दस्तावेज़ है और path वह पथ है जिसे हम इससे निकालना चाहते हैं।

इसलिए हम ऑपरेटर के बाईं ओर एक JSON दस्तावेज़ प्रदान करते हैं, और हम उस पथ को निर्दिष्ट करते हैं जिसे हम इसके दाईं ओर निकालना चाहते हैं।

इन ऑपरेटरों के बीच का अंतर इस प्रकार है:

  • -> ऑपरेटर हमेशा निर्दिष्ट उप-घटक का JSON प्रतिनिधित्व देता है
  • ->> ऑपरेटर हमेशा निर्दिष्ट उप-घटक का SQL प्रतिनिधित्व देता है

-> का उदाहरण संचालिका

यह प्रदर्शित करने के लिए यहां एक सरल उदाहरण दिया गया है कि कैसे -> ऑपरेटर काम करता है:

SELECT '{ "name" : "Wag", "type" : "Dog" }' -> '$';

परिणाम:

{"name":"Wag","type":"Dog"}

इस मामले में, मैंने '$' . का पथ निर्दिष्ट किया है जो पूरे दस्तावेज़ को लौटा देता है।

आइए एक और पथ निर्दिष्ट करें:

SELECT '{ "name" : "Wag", "type" : "Dog" }' -> '$.type';

परिणाम:

"Dog"

हम इसे इस तरह भी कर सकते हैं:

SELECT '{ "name" : "Wag", "type" : "Dog" }' -> 'type';

परिणाम:

"Dog"

->> का उदाहरण संचालिका

यहां बताया गया है कि जब हम ->> . का उपयोग करते हैं तो क्या होता है इसके बजाय:

SELECT '{ "name" : "Wag", "type" : "Dog" }' ->> '$.type';

परिणाम:

Dog

मान को पहले की तरह उद्धृत नहीं किया गया है। ऐसा इसलिए है क्योंकि -> उप-घटक का JSON प्रतिनिधित्व देता है और ->> एक SQL प्रतिनिधित्व देता है।

->> ऑपरेटर एक SQL पाठ, पूर्णांक, वास्तविक, या NULL मान देता है जो चयनित उप-घटक का प्रतिनिधित्व करता है, या NULL यदि उप-घटक मौजूद नहीं है।

यहां एक सरणी के साथ एक उदाहरण दिया गया है:

SELECT '{ "scores" : [ 9, 7, 5 ] }' ->> '$.scores[2]';

परिणाम:

5

यदि मान में केवल एक सरणी है, तो हम यह कर सकते हैं:

SELECT '[ 9, 7, 5 ]' ->> '2';

परिणाम:

5

यह निर्दिष्ट सूचकांक पर सरणी तत्व देता है (इस मामले में 2)।

सरणियाँ शून्य आधारित हैं (गिनती 0 से शुरू होती है ), और इसीलिए 2 तीसरा आइटम लौटाता है।


  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. SQLite JSON_QUOTE ()

  3. SQLiteReadOnlyDatabaseException:केवल पढ़ने के लिए डेटाबेस लिखने का प्रयास (कोड 1032)

  4. SQLite शो टेबल समतुल्य

  5. SQLite अभिव्यक्ति-आधारित अनुक्रमणिका