如何设置功能参数如列表

时间:2019-04-16 04:00:55

标签: 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?

类似于以下代码, 我们需要在id大于1时设置参数,例如where子句中的(1,2,3,4 ...)。 谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

只需传递ID为数据类型的数组即可。如果是整数,则传递int[]。如果是文字,请使用text[]等。此外,请使用ANY代替IN

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]);

DEMO

相关问题