这是我的json:
[{"state":"terminated"}]
如何查询此数组以获取where子句中的状态?
我想查询我的表并获取包含状态等于“已终止”的colunm的每一行
我的表:
id | info
1 | [{"state":"terminated"}]
我尝试了什么:
select * from "myTable"
where info->>'state' = 'terminated'
但它不会返回任何行。
我在表中检查过我有一行状态=“已终止”
编辑:
“info”列可以包含比现在更多的对象。
示例:
[{"state":"terminated"},{"anotherKey","anotherValue"}]
由于
答案 0 :(得分:1)
首先创建索引
CREATE INDEX docs_data_idx ON myTable USING GIN (info jsonb_path_ops);
然后
select * from myTable WHERE info @> '[ { "state":"terminated"} ]';