【发布时间】:2016-06-15 13:38:56
【问题描述】:
我的表有一个 jsonb 列,它以这种格式存储 JSON 字符串数组:
["ItemA", "ItemB", "ItemC"]
我正在尝试根据数组中某些项目的数量过滤行,使用通配符作为项目名称的一部分。
根据我在 SO 上阅读的内容,我可以使用 jsonb_to_recordset 函数,然后正常查询数据,但我无法将各个部分放在一起。
如何使用 jsonb_to_recordset 来完成此任务?它要求一个列定义列表,但是我如何为一个字符串数组指定一个?
我假设的(但当然不是有效的)查询看起来像这样:
SELECT * FROM mytable, jsonb_to_recordset(mytable.jsonbdata) AS text[] WHERE mytable.jsonbdata LIKE 'Item%'
编辑: 也许可以使用类似的方法来完成:
SELECT * FROM mytable WHERE jsonbdata ? 'Item%';
【问题讨论】:
标签: arrays json postgresql jsonb postgresql-9.5