sql - PostgreSQL select * 其中列包含数组值

标签 sql json postgresql jsonb

我有一个像这样的 postgresql 数据库:

users
id     name     companyrestrictions
1      Bill     [3, 4]
2      Fred     [5, 6]

在这种情况下,每个公司 3 都有一个变量

所以我写了这样一个查询:

SELECT * FROM users WHERE 3 = ANY(users.companyrestrictions)

但我收到以下错误: op ANY/ALL (array) 需要右侧的数组

公司限制是类型jsonb

我做错了什么?

最佳答案

尝试 <@包括 operator :

<@ Are the left JSON path/value entries contained at the top level within the right JSON value?

SELECT * FROM users WHERE '3' <@ users.companyrestrictions

ANY 只适用于数组

关于sql - PostgreSQL select * 其中列包含数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47239659/

相关文章:

postgresql - SymmetricDS - 在转换时添加节点 ID

sql - 将 key 获取到 postgres 中的 JSON 字段

sql - postgres - 递归

sql - 下限 LIMIT/高 OFFSET 的成本非常高

mysql - 如何获取从中找到行的表的名称

c# - 使用存储过程连接数据库中的 4 个表?

c# - SQL Server 2005 中的 XML 查询

python - 在 DRF 中序列化自定义相关字段

javascript - JSON 数据无法通过文本区域输入控件

java - 使用 Jackson 迭代多个子节点