PostgreSQL सरल ऑपरेटरों का उपयोग करके मूल्यों की सरणियों की तुलना करना बहुत आसान बनाता है। इस लेख में, हम देखेंगे कि PostgreSQL डेटाबेस में सरणियों की तुलना कैसे करें।
PostgreSQL में Arrays की तुलना कैसे करें
PostgreSQL आपको समानता ऑपरेटरों (=, <>), आदेश देने वाले ऑपरेटरों (>, <,>=, <=), नियंत्रण ऑपरेटरों (@>, <@) और ओवरलैप ऑपरेटरों (&&) का उपयोग करके सरणियों की तुलना करने की अनुमति देता है।
PostgreSQL सरणियों की तुलना करने के बाद, परिणाम के रूप में यह सच के लिए t या गलत के लिए f देता है।
आइए हम इनमें से प्रत्येक ऑपरेटर को एक-एक करके देखें।
समानता के लिए सरणियों की तुलना करें
समानता ऑपरेटर यह जांचने के लिए तत्व-दर-तत्व तुलना करते हैं कि दो सरणी बराबर हैं या नहीं।
समानता ऑपरेटरों का उपयोग करके दो सरणियों की तुलना करने के लिए नमूना SQL क्वेरी यहां दी गई है। निम्नलिखित दो सरणियाँ समान नहीं हैं।
postgres=# select array[2,3,4] = array[1,2,5] as compare;
compare
---------
f
postgres=# select array[2,3,4] <> array[1,2,5]
as compare;
compare
---------
t
आदेश के लिए सरणियों की तुलना करें
आदेश देने वाले ऑपरेटर (>, <,>=, <=) दो सरणियों के बीच तत्व-दर-तत्व तुलना करते हैं ताकि यह जांचा जा सके कि तत्वों की प्रत्येक जोड़ी आवश्यक क्रम की स्थिति का पालन करती है या नहीं। यदि कोई बेमेल नहीं है तो यह t लौटाता है, अन्यथा f.
यहाँ एक उदाहरण है
postgres=# select array[1,3,5] >= array[1,3,4] as compare1, array[1,3,5] <= array[1,3,4,5] as compare2; compare1 | compare2 ----------+---------- t | f
पहली तुलना में, पहली सरणी का प्रत्येक तत्व> =दूसरे सरणी का प्रत्येक तत्व है। इसलिए, आप सच हो जाते हैं। दूसरी तुलना में, पहली सरणी में चौथा तत्व नहीं है, दूसरे सरणी के चौथे तत्व के साथ तुलना करने के लिए आवश्यक है। इसलिए, तुलना विफल हो जाती है और परिणामस्वरूप आप झूठे हो जाते हैं।
कंटेनमेंट के लिए सरणियों की तुलना करें
कंटेनर ऑपरेटर (<@, @>) आपको यह जांचने की अनुमति देते हैं कि क्या एक सरणी में @> ऑपरेटर का उपयोग करके एक और सरणी है, या यदि एक सरणी <@ ऑपरेटर का उपयोग करके किसी अन्य सरणी द्वारा समाहित है।
#to check if elements of array['b', 'c', 'd'] contain elements of array['b', 'c'] postgres=# select array['b', 'c', 'd'] @> array['b', 'c'] as contains; contains ---------- t # to check if array[1, 2, 4] is contained by array[4, 5, 2, 1] postgres=#select array[1, 2, 4] <@ array[4, 5, 2, 1] as is_contained_by; is_contained_by ----------------- t
ओवरलैप के लिए सरणियों की तुलना करें
ओवरलैप ऑपरेटर (&&) आपको यह जांचने देता है कि क्या दो सरणियों में कोई सामान्य तत्व हैं।
postgres=# select postgres-# array[2, 4] && array[4, 3] as overlap1, postgres-# array[0, 2] && array[1, 4] as overlap2; overlap1 | overlap2 ----------+---------- t | f
PostgreSQL के लिए रिपोर्टिंग टूल की आवश्यकता है? Ubiq मिनटों में डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!