यह मेरी समस्या का समाधान है। यह ?
. को बदलने के लिए PostgreSQL फ़ंक्शन का उपयोग करके समस्या का समाधान करता है ऑपरेटर।
मुझे वास्तव में यह पसंद नहीं है क्योंकि यह पीडीओ को पोस्टग्रेएसक्यूएल के लिए अधिक अनुपालन नहीं करता है। लेकिन मुझे कोई वास्तविक समाधान नहीं मिला।
CREATE FUNCTION json_key_exists(JSONB,TEXT) RETURNS BOOLEAN LANGUAGE SQL STABLE AS $f$
SELECT $1 ? $2
$f$;
और अब मैं क्वेरी का उपयोग कर सकता हूं:
SELECT * FROM post WHERE json_key_exists(locations, :location);
समाधान का सुझाव फ़्रीनोड #postgresql
. के शानदार रोडियम टॉड द्वारा दिया गया थासंपादित करें
जैसा कि @Abelisto ने सुझाव दिया है, ऊपर दिए गए फ़ंक्शन को jsonb_exists(jsonb, text)
के रूप में बनाने की कोई आवश्यकता नहीं है एविएलाबे है