2017-04-12 110 views
0

所以基本上列(COL1)的属性之一得到阵列看起来像这样:,Postgres的查询从内部JSON对象

{"property1": [1, 2], "property2": 3} 

所以我想property1进行阵列,这样我可以检查如果另一个数字在该数组中。

以下是我想做的事:

SELECT * 
FROM table 
WHERE 1 = ANY((col1 ->> 'property1')); 

或者其他类似的效果。问题是查询将它作为文本返回,不管我如何尝试,它都不想成为数组。

偶试过这样的东西:

SELECT * 
FROM table 
WHERE 1 = ANY((col1 -> 'property1')::int[]);//Says jsonb cant be cast to integer 

我试过多种其他的东西,不能让它工作。

回答

1
SELECT * 
FROM table 
WHERE '1'::jsonb <@ (col1->'property1')