Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Дата
Msg-id 461815.1701349582@sss.pgh.pa.us
обсуждение исходный текст
Ответ на BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''  (PG Bug reporting form <noreply@postgresql.org>)
Ответы Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''  (Bauyrzhan Sakhariyev <baurzhansahariev@gmail.com>)
Список pgsql-bugs
PG Bug reporting form <noreply@postgresql.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



В списке pgsql-bugs по дате отправления:

Предыдущее
От: Orlov Aleksej
Дата:
Сообщение: RE: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''
Следующее
От: Bauyrzhan Sakhariyev
Дата:
Сообщение: Re: BUG #18218: NOT LIKE ANY returns same result as LIKE ANY when array items are wrapped into E''