Re: LIKE with no wildcards problem
От | Ross J. Reedstrom |
---|---|
Тема | Re: LIKE with no wildcards problem |
Дата | |
Msg-id | 20020228194632.GD11120@rice.edu обсуждение исходный текст |
Ответ на | LIKE with no wildcards problem ("John J. Allison" <john@joss.ucar.edu>) |
Список | 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@joss.ucar.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
В списке pgsql-sql по дате отправления: