有没有办法在 PostgreSQL 的多值字段中搜索部分匹配?

pid*_*uis 4 arrays postgresql pattern-matching

我有一张这样安静的桌子:

CREATE TABLE myTable (
    family text,
    names text[]
)
Run Code Online (Sandbox Code Playgroud)

我可以这样搜索:

SELECT family
FROM myTable where names @> array['B0WP04'];
Run Code Online (Sandbox Code Playgroud)

但我想做的是:

SELECT family
FROM myTable where names @> array['%P0%'];
Run Code Online (Sandbox Code Playgroud)

这可能吗 ?

小智 5

我尝试在拉德克的答案上添加一些内容

select family
from myTable where 
exists (select 1 from unnest(names) as name where name like '%P0%');
Run Code Online (Sandbox Code Playgroud)

而且它也有效。我在 PostgreSQL 文档中搜索了该un()函数,但找不到任何内容。

我并不是说它没有做任何事情,但我只是好奇这个un()函数应该做什么(并且很高兴我的问题得到解决)