Postgresql 如何像列表一样设置函数参数

Postgresql 如何像列表一样设置函数参数,postgresql,Postgresql,我创建了一个如下函数 DROP FUNCTION if exists test_list_parameter(); CREATE or REPLACE FUNCTION test_list_parameter(???) returns setof test as $$ select * from test where test.id in ($1); $$ language sql 如何设置同时查询多个ID

我创建了一个如下函数

    DROP FUNCTION if exists test_list_parameter();
    CREATE or REPLACE FUNCTION test_list_parameter(???)
    returns setof test
    as
    $$
        select * from test
        where test.id in ($1);
    $$
    language sql
如何设置同时查询多个ID?

就像下面的代码一样, 我们需要在id大于1时设置参数,如where子句中的(1,2,3,4…)。
谢谢您的帮助。

只需传递id的数据类型数组。如果它是整数,则传递一个
int[]
。如果是文本,请使用
text[]
等。此外,请使用
ANY
而不是
中的

CREATE or REPLACE FUNCTION test_list_parameter( idlist int [])
returns setof test
as
$$
    select * from test
    where test.id = ANY(idlist);
$$
language sql
称之为

select * from test_list_parameter(ARRAY[1,3]);

您可以传递一个
整数[]
(整数数组)。谢谢@LaurenzAlbe,正如您所说,我已经尝试了该方法,但是test.id不是那种类型,所以它是一个错误。那么,请告诉我们它是什么类型,以及您在尝试实现该方法时遇到的确切问题。@LaurenzAlbe如下面的答案所示,这个错误是因为我不知道怎么用。太谢谢你了,我已经解决了我的问题。太谢谢你了,我已经解决了我的问题,我想重点是什么(),我以前不知道它的用途。