सरणी के साथ चयन करने के लिए कैसे psql में मान खंड होता है


96

मेरे पास कॉलम है arr जो टाइप का है array

मुझे उन पंक्तियों को प्राप्त करने की आवश्यकता है, जहां arrकॉलम में मूल्य होता हैs

यह प्रश्न:

SELECT * FROM table WHERE arr @> ARRAY['s']

त्रुटि देता है:

त्रुटि: ऑपरेटर मौजूद नहीं है: चरित्र भिन्न [] @> पाठ []

यह काम क्यों नहीं करता है?

पी एस मैं any()ऑपरेटर के बारे में जानता हूं , लेकिन @>काम क्यों नहीं करता है?

जवाबों:



65

ध्यान दें कि यह भी काम कर सकता है:

SELECT * FROM table WHERE s=ANY(array)

4
और यह भी मुझे s @> ARRAY['constant'::varchar]लघु रूप में , varchar को कास्ट करने की आवश्यकता से रोकता है ।
एंड्रयू बैकर

यह GIN इंडेक्स का उपयोग नहीं करेगा इसलिए मैं इसका उपयोग नहीं करूंगा। अगर मैं गलत हूं तो मुझे
सुधारो

17
SELECT * FROM table WHERE arr && '{s}'::text[];

रोकथाम के लिए दो सरणियों की तुलना करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.