[英]Postgres jsonb column select from array where a string matches wildcards
我希望将postgres jsonb列与数组一起使用并能够对它们进行过滤,因此我有一个包含列的模式:
CREATE TABLE testtable
(
id varchar(32) NOT NULL,
refs jsonb NULL,
)
并且该列包含Json格式的数据:
{ "refs": ["one-1-0", "two-3-2", "two-3-4" ] }
我希望能够返回包含以(例如)“two-3-”开头的数组元素的所有行
我已经尝试了几件事,并且无法让它按照我的意愿工作(我最接近的是将数组部分作为文本并将其作为字符串搜索 - 但这很讨厌)
我还想为此列添加合适的索引以支持此查询。
任何建议都会很棒,很受欢迎! 谢谢
SELECT DISTINCT -- 3
id, refs
FROM
testtable,
jsonb_array_elements_text(refs -> 'refs') -- 1
WHERE
value LIKE 'two_3%' -- 2
LIKE
比较器和%
通配符按数组元素( value
)过滤所有记录 DISTINCT
删除重复项
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.