2

以下查询:

SELECT ARRAY[[1,2,3], [4,5,6], [7,8,9]] @> ARRAY[2, 3, 5];

如预期的那样以 true 而不是 false 响应,因为array[2, 3, 5]源数组中不存在 。任何想法怎么会发生?也许 flatten 应用于多维数组?

4

1 回答 1

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

sql fiddle demo

一些关于 PostgreSQL 中数组的有用链接:

于 2013-08-21T14:12:19.527 回答