PostgreSQL:比较两个数组是否存在第二个数组中的任何一个值

PostgreSQL: Compare Two Arrays Is Any One Value Exists In Second Array

我正在尝试连接两个 table,每个 table 都有一个数组列。我的意图是比较两个数组,如果第一个数组的任何值存在于第二个数组中。

我正在写如下的 where 子句

any(table1.array1) = any(table2.array2)

但它对我不起作用。

运算符 && 应该可以解决问题。如果 Array1 中的任何元素出现在 Array2 中,这将 return。 请参阅此处的 PostgreSQL 文档:Array Operators

select array[1,2,3] && array[2,4,5], array[1,2,3] && array[4,5, 6], array[1,2,3] && array[1]
Output: true, false, true

如果您要查看第二个数组中是否存在所有元素,您应该使用 @> 或 <@