PostgreSQL supporta anche le espressioni regolari POSIX complete:
select * from table where value ~* 'foo|bar|baz';
Il ~*
è per una corrispondenza senza distinzione tra maiuscole e minuscole, ~
fa distinzione tra maiuscole e minuscole.
Un'altra opzione è usare QUALSIASI:
select * from table where value like any (array['%foo%', '%bar%', '%baz%']);
select * from table where value ilike any (array['%foo%', '%bar%', '%baz%']);
Puoi usare ANY con qualsiasi operatore che produca un valore booleano. Sospetto che le opzioni regex sarebbero più veloci, ma QUALSIASI è uno strumento utile da avere nella tua cassetta degli attrezzi.