私はテーブルフィールドjsonbタイプを持ち、以下のデータを持っています。postgresql json配列フィールドからデータを取得する方法
{"roles": ["7", "73", "163"]}
「73」がpostgresqlに存在するかどうかをチェックする必要があります。
私はすでに検索していますが、配列のオブジェクトではないオブジェクトのオブジェクトに対してソリューションを提供しています。
私は、クエリの下に試してみましたが、それは
SELECT *
FROM table
WHERE field->'roles' ? ARRAY ['73'];
--updated--
を動作しません。また、私は正確な値
{「役割」を持っているだけで、そのレコードが必要になります[ "7"]}
{ "ロール":[ "7"、 "73"、 "163"]}
すなわちフィールドのみ」を有します7 "それ以外のものはありません。すべての例のドキュメントhttps://www.postgresql.org/docs/current/static/functions-json.html#FUNCTIONS-JSONB-OP-TABLEことで
なぜ左右JSON配列に存在する時のキーあなたは 'ARRAY ['73']'を使っていますか?あなたのクエリは 'WHERE field - > 'roles'だけでうまくいきますか? '73' '。 – Marth
@マース:ありがとうインターネットでの解決策とスタックオーバーフローのために半日以上の検索を行っていますが、それは分かります。 – Sandeep
@Marth:また、その正確な配列に一致する必要があります。それで私はARRAY ['73 ']を使っているのですが、うまくいきません:( – Sandeep