Обсуждение: BUG #5535: Backslash in condition for LIKE statement is not seen
The following bug has been logged online:
Bug reference: 5535
Logged by: Jeff Benjamin
Email address: jeff@ivertex.com
PostgreSQL version: 8.3.8
Operating system: MacOSX, Linux
Description: Backslash in condition for LIKE statement is not seen
Details:
Seems one cannot use a backslash character in a LIKE condition.
backslashprob=# create table test ( pattern varchar(50) );
CREATE TABLE
backslashprob=# insert into test (pattern) values ('\\w{12}');
INSERT 0 1
backslashprob=# select * from test;
pattern
---------
\w{12}
(1 row)
backslashprob=# select * from test where pattern like '\\w%';
pattern
---------
(0 rows)
backslashprob=# select * from test where pattern like E'\\w%';
pattern
---------
(0 rows)
backslashprob=# select * from test where pattern like '%w%';
pattern
---------
\w{12}
(1 row)
"Jeff Benjamin" <jeff@ivertex.com> wrote: > Seems one cannot use a backslash character in a LIKE condition. By default that has special meaning as an escape character. Try this: select * from test where pattern like E'\\w%' escape '#'; or this: select * from test where pattern like E'\\\\w%'; -Kevin
Thanks, that works! On Jul 1, 2010, at 1:34 PM, Kevin Grittner wrote: > "Jeff Benjamin" <jeff@ivertex.com> wrote: > >> Seems one cannot use a backslash character in a LIKE condition. > > By default that has special meaning as an escape character. > > Try this: > > select * from test where pattern like E'\\w%' escape '#'; > > or this: > > select * from test where pattern like E'\\\\w%'; > > -Kevin