首页 > 解决方案 > 检查 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)

标签: arrayspostgresql

解决方案


您需要以不同的方式使用 contains 运算符:

以下将测试是否category_id同时包含值 3 和 5

AND category_id @> array[3,5]

如果要检查它是否至少包含其中之一,请使用重叠运算符:

AND category_id && array[3,5]

在线示例


推荐阅读