Re: LIKE with no wildcards problem

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: Raw Message | Whole Thread | 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

In response to

Browse pgsql-sql by date

  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