如何从数组中获取记录的值?

How to get the value of record from array?

我需要获取数组记录的第一个元素的值。

SELECT ARRAY(
    SELECT ROW(id, id_currency, id_user)
      FROM posts
     WHERE id IN (111, 104, 102) FOR UPDATE
) ; 

结果:

{"(104,643,)","(111,643,)", ,"(112,643,)"}

如何获取数组第二个元素的入口值?

试试这个:

SELECT (ARRAY(
    SELECT ROW(id, id_currency, id_user)
      FROM posts
     WHERE id IN (111, 104, 102) FOR UPDATE
))[2] ; 

您可以使用 arr[n] 获取数组 arr 的第 n 个元素。默认情况下,PostgreSQL 对数组使用从一开始的编号约定,即 n 个元素的数组以 array[1] 开头并以 array[n].

结尾

以下URL会对您有所帮助。 http://www.postgresql.org/docs/9.1/static/arrays.html