Postgresql 当只有一个多维元素时,generate_subscripts(array,2)返回两条记录
当多维数组Postgresql 当只有一个多维元素时,generate_subscripts(array,2)返回两条记录,postgresql,multidimensional-array,set-returning-functions,Postgresql,Multidimensional Array,Set Returning Functions,当多维数组图像中只有一个多维元素时,为什么返回2条记录 SELECT images FROM ( SELECT images, generate_subscripts(images, 2) AS s FROM listings WHERE listings.id = 2 ) as foo; 注意:为了便于查看,我缩短了base64字符串 id | 2 created_at | 2017-04-19 23:44:50.150913
图像中只有一个多维元素时,为什么返回2条记录
SELECT images
FROM (
SELECT images, generate_subscripts(images, 2) AS s
FROM listings
WHERE listings.id = 2
) as foo;
注意:为了便于查看,我缩短了base64字符串
id | 2
created_at | 2017-04-19 23:44:50.150913+00
posted_by | 10209280753550922
images | {{/9j/4AAJRgAB2dgKd/9k=,3/2/image-3-2-1492645490308.jpeg}}
数组中有两个元素,用逗号分隔:
{{/9j/4AAJRgAB2dgKd/9k=,3/2/image-3-2-1492645490308.jpeg}}
{{"/9j/4AAJRgAB2dgKd/9k=,3/2/image-3-2-1492645490308.jpeg"}}
见:
在指定维度中,每个元素返回一行(不是每个维度一行):
generate_subscripts
是一个生成集合的方便函数
给定数组的指定维度的有效下标数。
对于没有请求的数据的数组,返回零行
维度,或为空数组(但为空数组返回有效下标)
空数组元素)
如果该元素是单个元素,则必须对其进行双引号,以避免逗号的特殊含义:
{{/9j/4AAJRgAB2dgKd/9k=,3/2/image-3-2-1492645490308.jpeg}}
{{"/9j/4AAJRgAB2dgKd/9k=,3/2/image-3-2-1492645490308.jpeg"}}
旁白:在现代Postgres中,您可以使用以下更简单的等效查询:
SELECT images
FROM listings, generate_subscripts(images, 2) s
WHERE id = 2;
这是一个隐式交叉连接侧向。见:
是的,对不起!我不知道这一个怎么会没有我的答案。