【发布时间】:2013-08-23 22:12:10
【问题描述】:
以下查询:
SELECT ARRAY[[1,2,3], [4,5,6], [7,8,9]] @> ARRAY[2, 3, 5];
按预期返回 true 而不是 false,因为源数组中不存在 array[2, 3, 5]。有什么想法怎么会发生?或许flatten应用于多维数组?
【问题讨论】:
-
更可怕的是:SELECT unnest(ARRAY[[1,2,3], [4,5,6], [7,8,9]]);提供 unnest -------- 1 2 3 4 5 6 7 8 9 因此似乎应用了扁平化:-/ 预期:-------- {1,2,3} {4,5, 6} {7,8,9}
-
看起来它确实进行了预压扁 - SELECT ARRAY[[1,2,3], [4,5,6], [7,8,9]] @> ARRAY[[2], [3], [5]] 也返回 true
-
是的,问题是为什么? :)
标签: arrays postgresql multidimensional-array contains