【发布时间】:2021-12-31 07:45:32
【问题描述】:
我有一个查询,它返回一个名为 record 的 JSON 列,该列由子查询生成。
SELECT record FROM (my json query) records;
每条记录都包含一个标签对象数组:
{
"tags": [
{
"id": 3,
"name": 'foo'
},
{
"id": 10,
"name": 'bar'
}
],
// other props
}
我想修改我的查询以选择所有records,其中tags 包含具有特定ID 的标签,但我不知道如何在不添加另一个子查询的情况下执行此操作。是否有任何我缺少的功能或操作可以仅使用 where 子句来实现?
在伪代码中,有什么我可以做的吗?
SELECT record FROM (my json query) records
WHERE 3 = ANY(get_ids_from_objects(record->'tags', 'id'));
出于代码原因,我也不想修改创建 JSON 结构的子查询,这就是我排除它的原因。
【问题讨论】:
标签: sql postgresql