所以基本上列(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
我尝试了其他一些事情并且无法使其发挥作用。
答案 0 :(得分:1)
SELECT *
FROM table
WHERE '1'::jsonb <@ (col1->'property1')