2014-12-28 6 views
6

मैं इस क्वेरी का उपयोग कर रहा एक मेज जहां profile एक JSONB स्तंभ है में डेटा देखने के लिए और यह लेकिन केवल तभी कारगर साबित नाम ठीक वैसे ही है किमैं पोस्टग्रेस 9.4 JSONB कॉलम में केस-असंवेदनशील खोज कैसे करूं?

SELECT * FROM "users" WHERE "profile" @> '{"name":"Super User"}' 

है यह मामला असंवेदनशीलता की तरह और अधिक लचीलापन के लिए संभव है , वाइल्डकार्ड और इतने पर?

कुछ "Super%" या "super user"

+1

ऐसा करने के लिए हमें एक जेसन क्वेरी भाषा की तरह कुछ चाहिए। इसमें अंतर्निहित कुछ भी नहीं है, लेकिन कुछ लोग एक जेसन क्वेरी भाषा एक्सटेंशन पर काम कर रहे हैं। मुझे अभी संदर्भ नहीं मिल रहे हैं, लेकिन मैड्रिड में पीजीकॉन्फ ईयू 2014 में इसकी चर्चा हुई; शायद सम्मेलन सत्र सूची देखें। –

+1

क्या आप https://github.com/akorotkov/jsquery का जिक्र कर रहे हैं? मैं कोशिश करूँगा – G3z

+0

हाँ, यह वही है। यह काफी दिलचस्प लग रहा था। मुझे नहीं पता कि यह कितना स्थिर/परिपक्व/दस्तावेज/आदि है। –

उत्तर

8

जैसे मैं मेरी समस्या का हल मिल गया:

SELECT * FROM "users" WHERE (profile #>> '{name}') ILIKE 'super %' 

मैं अगर यह काफी अच्छी तरह से प्रदर्शन कर रहा है पता नहीं है, लेकिन यह काम करता है।
शायद यह सूचकांक जोड़ने के लिए बुद्धिमान है।

+0

इस स्थिति में किस प्रकार की अनुक्रमणिका समझ में आता है? मैं जीआईएन को समझता हूं क्योंकि केवल कुंजी पर रोकथाम/अस्तित्व प्रश्नों को तेज करता है – Tarlen

संबंधित मुद्दे