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
如果您要查看第二个数组中是否存在所有元素,您应该使用 @> 或 <@
我正在尝试连接两个 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
如果您要查看第二个数组中是否存在所有元素,您应该使用 @> 或 <@