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

Re: "_" in a serach pattern

From: Jessica Richard <rjessil(at)yahoo(dot)com>
To: Peter Koczan <pjkoczan(at)gmail(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: "_" in a serach pattern
Date: 2007-07-23 17:11:54
Message-ID: 829317.804.qm@web56414.mail.re3.yahoo.com (view raw or flat)
Thread:
Lists: pgsql-admin
Peter,

thanks a lot for your reply.

Could you please tell me more....

What is the difference between varchar and text? what is the benefit of each one? and is text alway better than varchar ?--- when it comes to a string column...

thanks

Peter Koczan <pjkoczan(at)gmail(dot)com> wrote: Hi, Jessica,
> 1. How do I get rid of the nonstandard warning, but still using the 
> index search?
You have two options.

- Turn off the warnings in the postgresql.conf file. Use this with 
caution (or don't use it at all) as it does pose a potential threat for 
SQL injections if other options aren't properly set. Read up at 
http://www.postgresql.org/docs/8.2/static/runtime-config-compatible.html 
for more detail.
- Use escape-string formatting. This is the best practice since it is 
standards-conforming and more secure. You can do it, for instance, as
    select name from table where name like 'A!_B%' escape '!';
You can escape with most characters, and it's mostly a matter of 
personal preference.
>
> 2. How do I search with a wild card % in the middle of the pattern? 
> Would varchar(80) or char(80) make a difference about the wild card 
> search (% in the middle)?
I think that postgres is seeing the trailing whitespace on the end of 
the char type and not accounting for it in the search. In this case, 
varchar or text types would make a difference since they don't do 
whitespace padding (unless you force it in). You should remember that if 
you plan on converting the data type, trim the extraneous whitespace 
first. However, I would switch to varchar/text so it saves some space 
and saves you these headaches, unless there's an absolute need for 
fixed-length char fields. I use text almost exclusively for string data 
since it's arbitrary-length, I almost never have to worry about overflow 
or later administration.

If you don't want to convert data, you can use the rtrim() function 
(i.e. "select rtrim(name) from ...").

Peter

> ------------------------------------------------------------------------
> Need a vacation? Get great deals to amazing places 
> on 
> Yahoo! Travel. 



       
---------------------------------
Yahoo! oneSearch: Finally,  mobile search that gives answers, not web links. 

In response to

Responses

pgsql-admin by date

Next:From: Mark StebenDate: 2007-07-23 18:05:20
Subject: update within trigger function
Previous:From: Thiago MalufDate: 2007-07-23 14:31:09
Subject: Re: Disable access shell command in psql

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