arrays - 检查 Postgres int[] 中是否存在多个 id
问题描述
我正在尝试获取 int[] 类型的列包含值的行。目前我正在使用 Any() 运算符,但不适用于我。
select * from products where 4 = ANY(product_type) AND (3,5) @> ANY(category_id);
给定错误:
Syntax error: 7 ERROR: syntax error at or near "," LINE 1: ...mages.product_id where 4 = ANY(product_type) AND 3,5 @> ANY(category_id)
解决方案
您需要以不同的方式使用 contains 运算符:
以下将测试是否category_id
同时包含值 3 和 5
AND category_id @> array[3,5]
如果要检查它是否至少包含其中之一,请使用重叠运算符:
AND category_id && array[3,5]
推荐阅读
- mysql - Sql 查询交叉变换或透视?
- python - 使用 BeautifulSoup 进行抓取,值不干净
- python - 在元素个数为偶数的情况下不除以两个元素之和的中位数
- pandas - Groupby 转换到 Pandas 中的列表不起作用
- uuid - UUID 在 Minecraft bungeeCord 网络中为同一个人以不同方式保存
- reactjs - 如何避免 React Hooks 的重新渲染
- java - 我想替换java段落中的整个单词,但它也在替换匹配的字符。不知道该怎么做
- javascript - SyntaxError: 预期的表达式,得到 '&' (Django)
- flutter - 当我使用 FlutterFragmentActivity 时出现 Flutter MissingPluginException
- python - 如何使用创建功能 odoo 13 将产品添加到 sale.subscription 订单行