PostgreSQL 在 where 子句中使用 jsonb 数组

问题描述 投票:0回答:1

我有这张桌子:

Directives Table:
user_id: 5
account_id: 1
filters: { "a": "my value", "names": ['myname', 'yourname'] } // jsonb

我想通过判断

Directives
是否为
filters->name
元素的集合(数组?)来过滤
IN
表中的行:

即:

SELECT * FROM directives
WHERE filters->names IN ['yourname']

谢谢你。

sql postgresql jsonb
1个回答
0
投票

您显示的伪代码将与

jsonb
?
运算符
:

一起工作
SELECT *
FROM   directives
WHERE  filters->'names' ? 'yourname';

小提琴

可以通过 GIN 索引来支持。参见:

但我不完全确定这是否是您正在寻找的。

© www.soinside.com 2019 - 2024. All rights reserved.