Postgres查询从JSON对象的一个​​属性中获取数组

时间:2017-04-12 16:16:57

标签: sql json postgresql

所以基本上列(col1)看起来像这样:

{"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 个答案:

答案 0 :(得分:1)

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