Re: [HACKERS] escape character \
От | Jose' Soares Da Silva |
---|---|
Тема | Re: [HACKERS] escape character \ |
Дата | |
Msg-id | Pine.LNX.3.96.980427095040.700A-100000@proxy.bazzanese.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] escape character \ (Bruce Momjian <maillist@candle.pha.pa.us>) |
Список | pgsql-hackers |
On Sun, 26 Apr 1998, Bruce Momjian wrote: > > > > Seems there's a bug using ESCAPE character (\) on LIKE clause: > > > > prova=> create table tmp ( a text); > > CREATE > > prova=> insert into tmp values('\\'); > > INSERT 178729 1 > > prova=> select * from tmp where a = '\\'; > > a > > -- > > \\ > > (1 row) > > > > prova=> select * from tmp where a like '%\\%'; > > a > > - > > (0 rows) > > > > prova=> select * from tmp where a like '%\\\\%'; > > a > > -- > > \\ > > (1 row) > > > > -- how many \ do I have to use? 1, 2, 3, 4 or 5 ??? > > > > prova=> select * from tmp where a like '%\\\\\%'; > > a > > -- > > \\ > > (1 row) > > Jose' > > The problem is that that \\ is need to input a backslash, and we support > \ to escape special characters like %, so \\\\ is need to test for a > backslash in a LIKE. Is this not standard? I suppose not. The LIKE standard SQL92 has the keyword ESCAPE to specify a character as escape, like this: SELECT * FROM my_table WHERE my_col LIKE '#_pluto' ESCAPE '#'; > Should we remove the special use of \ in LIKE? Comments? Obviously we need a character escape (back slash or other) to escape _ or/and %, but before remove use of back slashes we need to have the LIKE SQL92 syntax. Jose'
В списке pgsql-hackers по дате отправления: