PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> select 'TextToMatch' like any (array[E'Te\%tch', E'nomatch']); -- true,
> correct
> select 'TextToMatch' NOT like any (array[E'Te\%tch', E'nomatch']); -- true
> but must be false because it's a negated version of the expression above
No, it is not. "NOT LIKE" is the operator to apply in this context,
so the second expression returns true if the test string is NOT LIKE
either of the array elements. You could write
NOT ('TextToMatch' like any (array[E'Te\%tch', E'nomatch']))
to get the behavior you are after. Or write NOT LIKE ALL,
as Orlov suggests.
regards, tom lane