以下查询:
SELECT ARRAY[[1,2,3], [4,5,6], [7,8,9]] @> ARRAY[2, 3, 5];
如预期的那样以 true 而不是 false 响应,因为array[2, 3, 5]
源数组中不存在 。任何想法怎么会发生?也许 flatten 应用于多维数组?
以下查询:
SELECT ARRAY[[1,2,3], [4,5,6], [7,8,9]] @> ARRAY[2, 3, 5];
如预期的那样以 true 而不是 false 响应,因为array[2, 3, 5]
源数组中不存在 。任何想法怎么会发生?也许 flatten 应用于多维数组?
这不是为什么,但我试图找到一种方法来做你需要的,到目前为止我最好的是:
with cte_arr as (
select ARRAY[[1,2,3], [4,5,6], [7,8,9], [10,11, 12], [2,5,3]] as arr
), cte_s as (
select generate_subscripts(arr,1) as subscript, arr
from cte_arr
)
select arr[subscript:subscript] @> ARRAY[2, 3, 5], arr[subscript:subscript]
from cte_s
一些关于 PostgreSQL 中数组的有用链接: