【问题标题】:postgresql: select returning ARRAYpostgresql:选择返回数组
【发布时间】:2011-05-12 17:49:11
【问题描述】:

我有一张桌子:

CREATE TABLE tbl_temp (id serial, friend_id int, name varchar(32));  

我希望我可以运行以下 SQL:

PREPARE x AS SELECT {$1,friend_id} FROM tbl_temp WHERE id = ANY($2);  
EXECUTE x(33, ARRAY[1,2,3,4])

我基本上是在寻找一个语句,它将返回一个由两个整数组成的数组,其中第一个将是用户输入,第二个将来自表列,如 friend_id

在 PostgreSQL 中真的可以吗?

SELECT ($1,friend_id) FROM tbl_temp 的结果;

EXECUTE x(44);
  row     
--------  
 (44,1)  
 (44,2)  
 (44,3)  
(3 rows)

如果我使用PQgetvalue(PGres, 0, 0),结果将如何:{44,45}(44,45)

【问题讨论】:

    标签: sql arrays postgresql


    【解决方案1】:

    我想你想使用array constructor syntax

    SELECT ARRAY[$1, friend_id] FROM tbl_temp WHERE id = ANY($2)
    

    【讨论】:

      【解决方案2】:

      我不确定我是否明白你想要什么......

      要返回一个数组,请执行此操作。

      SELECT (44, "friend_id") FROM "tbl_temp" WHERE id = ANY(ARRAY[1,2,3,4]);
      

      【讨论】:

      • 感谢您的回复。实际上,我一直在寻找类似 @​​987654322@... 的东西 mu is too short
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 2013-10-10
      • 1970-01-01
      • 2011-05-16
      • 2021-02-08
      相关资源
      最近更新 更多