我無法找到如何做任何資料in/ subsetof/ containsPostgres里使用JsonPath查詢。
例如,假設在名為的 jsonb 列中有以下資料 data
{
"name": "foo",
"somearray" : [1,2,3,4,5]
}
然后我想使用類似的東西來查詢這個
SELECT *
FROM mytable
where jsonb_path_exists(data, '($.somearray ??????? [2,4,6,8] ');
這確實有效:
SELECT *
FROM mytable
where jsonb_path_exists(data, '($ ? (@.somearray[*] == 2 || @.somearray[*] == 4 /*etc*/) ');
但我希望有一些更短的語法來進行適當的子集測驗
uj5u.com熱心網友回復:
不幸的是沒有jsonpath陣列運算子,但您仍然可以使用陣列運算子:
SELECT *
FROM mytable
where (data->>'somearray') :: integer[] @> [2,4,6,8] ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/380155.html
標籤:PostgreSQL的 路径
