/ / PostgreSQL 9.3 में एक JSON कॉलम के विरुद्ध सरणी के लिए क्वेरी - json, postgresql, postgresql-9.3

PostgreSQL 9.3 में जेएसओएन कॉलम के खिलाफ सरणी रोकथाम के लिए पूछताछ - जेसन, postgresql, postgresql-9.3

मैं PostgreSQL 9.3 चला रहा हूं। मेरे पास "json" प्रकार का "मॉडल" नाम का कॉलम हैनहीं jsonb)। "मॉडल" कॉलम की सामग्री निम्न के समान है:

{ "section": { "colors": ["red", "blue", "green"] } }

क्या जहाँ पंक्तियों के लिए क्वेरी करना संभव है model -> section -> colors "नीला" शामिल है?

उत्तर:

उत्तर № 1 के लिए 1

9.3 में कोई जोंस तुलना ऑपरेटर नहीं हैं। आप फ़ंक्शन को कॉल कर सकते हैं json_array_elements() और समारोह के परिणाम डाले text. Distinct on जसन सरणियों में डुप्लिकेट तत्व होते हैं:

select distinct on (id) t.*
from my_table t,
json_array_elements(model->"section"->"colors")
where value::text = ""blue"";

SqlFiddle