| From: | "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu> | 
|---|---|
| To: | "John J(dot) Allison" <john(at)joss(dot)ucar(dot)edu> | 
| Cc: | pgsql-sql(at)postgresql(dot)org | 
| Subject: | Re: LIKE with no wildcards problem | 
| Date: | 2002-02-28 19:46:32 | 
| Message-ID: | 20020228194632.GD11120@rice.edu | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-sql | 
On Thu, Feb 28, 2002 at 11:54:02AM -0700, John J. Allison wrote:
> When doing a select with a LIKE in the where clause,
> I always get 0 rows if I do not use a wildcard [_%].
> LIKE should act like = in this case (and the docs say so).
> A select without a from correctly returns 't'.
> I am using PostgreSQL 7.1.3 on Solaris.
> What am I missing?
The whitespace. Your field is of type CHAR(n), which pads all strings
to the defined width. This behavior is required by the standard. Try
using VARCHAR or TEXT instead.
Ross
> 
> Thanks,
> 
> John Allison
> john(at)joss(dot)ucar(dot)edu
> 
> 
> catalog^> create table foo ( bar char(8) )
> CREATE
> 
> catalog^> insert into foo values ( 'abc' )
> INSERT 38413 1
> 
> catalog^> insert into foo values ( '2.20' )
> INSERT 38414 1
> 
> catalog^> select * from foo
>    bar    
> ----------
>  abc     
>  2.20    
> (2 rows)
> 
> catalog^> select * from foo where bar like 'abc'
>  bar 
> -----
> (0 rows)
> 
> catalog^> select * from foo where bar like 'abc%'
>    bar    
> ----------
>  abc     
> (1 row)
> 
> catalog^> select 'abc' like 'abc'
>  ?column? 
> ----------
>  t
> (1 row)
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Matthew Price | 2002-02-28 21:00:12 | Can't get rid of constraint | 
| Previous Message | Ian Barwick | 2002-02-28 19:36:48 | Re: LIKE with no wildcards problem |