From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> |
---|---|
To: | Robert James <srobertjames(at)gmail(dot)com> |
Cc: | Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Escape string for LIKE op |
Date: | 2013-08-15 20:43:13 |
Message-ID: | CAMkU=1ygdQ=p2SjwM4UCjcMyVPxiW65Md-SbCWjHyjipeLnGtQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, Aug 15, 2013 at 1:16 PM, Robert James <srobertjames(at)gmail(dot)com> 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
From | Date | Subject | |
---|---|---|---|
Next Message | Janek Sendrowski | 2013-08-15 20:46:54 | devide and summarize sql result |
Previous Message | Andrew Berman | 2013-08-15 20:28:02 | Re: Streaming Replication Randomly Locking Up |