我希望能够使用相同的查询语法返回两行
给出一个名为“ qux”的表中名为“ tags”的jsonb列,其中第1行有示例数据。
{
"foo": ["1","2"]
}
第2行:
{
"foo": ["3"]
}
以及在“标签”列上创建的必备索引:
CREATE INDEX tag_idx ON tags USING GIN (tags);
当我运行以下查询时:
SELECT count(*) FROM "qux" WHERE tags @> '{"foo": ["1"]}'
我希望能重新获得一行,这是正确的。
如果我跑步:
SELECT count(*) FROM "qux" WHERE tags @> '{"foo": ["3"]}'
我没有退回任何行,这让人感到意外。如果我在第二个示例中删除了方括号,则可以返回该行,但是该语法破坏了第一个示例。
这是一个已知的错误,还是索引问题? postgres的版本是9.5