以下查询:
SELECT ARRAY[[1,2,3], [4,5,6], [7,8,9]] @> ARRAY[2, 3, 5];
由于源数组中不存在array[2, 3, 5]
,因此会按预期响应,而不会返回false。任何想法怎么会发生?也许flatten应用于多维数组?
答案 0 :(得分:1)
这不是为什么回答,但我试图找到一种方法来做你需要的,最好的我到目前为止是:
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中数组的一些有用链接: