Re: Escape string for LIKE op

Поиск
Список
Период
Сортировка
Искать
От
Jeff Janes
Тема
Re: Escape string for LIKE op
Дата
Msg-id
CAMkU=1ygdQ=p2SjwM4UCjcMyVPxiW65Md-SbCWjHyjipeLnGtQ@mail.gmail.com
Ответ на
Список
Дерево обсуждения
Escape string for LIKE op Robert James <srobertjames@gmail.com>
Re: Escape string for LIKE op Vik Fearing <vik.fearing@dalibo.com>
Re: Escape string for LIKE op Jeff Janes <jeff.janes@gmail.com>
Re: Escape string for LIKE op Robert James <srobertjames@gmail.com>
On Thu, Aug 15, 2013 at 1:16 PM, Robert James  wrote:
> How can I escape a string for LIKE operations?
>
> I want to do:
>
> SELECT * FROM t WHERE a LIKE b || '%'
>
> But I want be to interpreted literally.  If b is 'The 7% Solution', I
> don't want that '%' to be wildcard.  I can't find an appropriate
> function to escape it and any other potential wildcards for LIKE
> clauses.

You could use the replace function.

select 'The 7% Solution is a good book' like replace('The 7%
Solution', '%', '\%')||'%';
true

select 'The 7pt Solution is a good book' like replace('The 7%
Solution', '%', '\%')||'%';
false

If you need to worry about underscores as well, you could chain two
replace functions together.

Cheers,

Jeff

В списке pgsql-general по дате отправления
От: Andrew Berman
Дата:
От: Janek Sendrowski
Дата:
FAQ