O PostgreSQL também suporta expressões regulares POSIX completas:
select * from table where value ~* 'foo|bar|baz';
O
~*
é para uma correspondência que não diferencia maiúsculas de minúsculas, ~
é sensível a maiúsculas e minúsculas. Outra opção é usar QUALQUER:
select * from table where value like any (array['%foo%', '%bar%', '%baz%']);
select * from table where value ilike any (array['%foo%', '%bar%', '%baz%']);
Você pode usar ANY com qualquer operador que produza um booleano. Eu suspeito que as opções de regex seriam mais rápidas, mas ANY é uma ferramenta útil para ter em sua caixa de ferramentas.