如何在 WHERE IN 子句中使用 PostgreSQL 数组?

How to use PostgreSQL array in WHERE IN clause?

我正在尝试简化以下 SQL 语句(为清楚起见包装到函数中)。

where ... in (/*array*/) 子句中使用 array 的 simpler/natural 句法是什么? (没有 select * from unnest(...) 样板文件)

CREATE OR REPLACE FUNCTION get_items(p_ids int[])
 RETURNS SETOF text
 LANGUAGE sql
AS $$
  select t.name 
    from my_table t 
   where f.id in (select * from unnest(p_ids))
$$;
 
 
 
 

不要使用IN使用ANY,这也消除了unnest

的需要
where f.id = any (p_ids)