Skip site navigation (1) Skip section navigation (2)

Re: = or LIKE ?

From: Jesper Krogh <jesper(at)krogh(dot)cc>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: = or LIKE ?
Date: 2009-02-15 19:27:03
Message-ID: 49986C87.4010307@krogh.cc (view raw or flat)
Thread:
Lists: pgsql-sql
Jesper Krogh wrote:
> Tom Lane wrote:
>> Jesper Krogh <jesper(at)krogh(dot)cc> writes:
>>> Shouldnt the like operator do the same as the = if there occours no 
>>> wildcards and stuff in the string?
>>
>> If there are also no escape characters, then yeah.
>>
>> FWIW, 8.4 will complain about this case:
>>
>> regression=# select E'\\' like E'\\';
>> ERROR:  LIKE pattern must not end with escape character
> 
> So I cannot rely on the like operator to behave correct if I'd like to 
> compare strings with backslashes (e.g. filepaths from MS Windows 
> filesystems)?
> 
> I actually get the same if it doesnt end with the slashes:
> testdb=# select E'\\t' like E'\\t';
>  ?column?
> ----------
>  f
> (1 row)
> 
> testdb=# select E'\\t' = E'\\t';
>  ?column?
> ----------
>  t
> (1 row)

Ok. The pattern has to be "double escaped"..

testdb=# select E'\\t' like E'\\\\t';
  ?column?
----------
  t
(1 row)


(for the archives a ref to the documentations i didnt get by the read 
through)
http://www.postgresql.org/docs/8.2/static/functions-matching.html#FUNCTIONS-LIKE

-- 
Jesper


In response to

Responses

pgsql-sql by date

Next:From: Tom LaneDate: 2009-02-15 19:34:58
Subject: Re: = or LIKE ?
Previous:From: Jesper KroghDate: 2009-02-15 19:20:18
Subject: Re: = or LIKE ?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group