From: | Maxim Maletsky <maxim(at)php(dot)net> |
---|---|
To: | Hervé Piedvache <herve(at)elma(dot)fr> |
Cc: | Zhidian Du <duzhidian(at)hotmail(dot)com>, pgsql-php(at)postgresql(dot)org |
Subject: | Re: search/select case-insensitivly. |
Date: | 2002-10-22 13:02:15 |
Message-ID: | 20021022145714.4DAF.MAXIM@php.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-php |
As long as I know, some databases will find John even if you ask for
JOHN.
If not, then here is your SELECT (for mySQL).
$sql = "SELECT * WHERE UPPER(name) = UPPER('$name')";
Your problem is solved now.
--
Maxim Maletsky
maxim(at)php(dot)net
www.PHPBeginner.com // where PHP Begins
Hervé Piedvache <herve(at)elma(dot)fr> wrote... :
> The best way is to always save data in your database in the same format ...
> upper or lower ... then create an index on your field classicaly ...
>
> CREATE INDEX ix_name ON mytable(name);
> SELECT name FROM mytable WHERE name = '" . strtolower($Name) ."';
>
> You will ever use the index ... and it's simple to implement ...
> You can also easily do an update of your database like :
> update mytable set name=lower(name);
> to get all the old data in the good format ...
> Do not forget to vacuum the table after that !
>
> Regards,
>
> Le Mardi 22 Octobre 2002 10:12, Andrew McMillan a écrit :
> > On Tue, 2002-10-22 at 17:01, Zhidian Du wrote:
> > > I want a PHP program to search case-insensitivly.
> > >
> > > for example:
> > > select Name from mytable where Name = '$Name';
> > >
> > >
> > > Here $Name is what users' input maybe JOHN, john. How to let it match
> > > John in table and find that record?
> >
> > Although you can simply do as another poster said and use the ILIKE
> > operator, there are a few things you may want to consider.
> >
> > You can also do something like:
> >
> > "SELECT name FROM mytable WHERE lower(name) = '" . strtolower($Name) .
> > "'; "
> >
> > This means that PostgreSQL will use an index, if there is an index on
> > lower(name):
> >
> > CREATE INDEX lcname ON mytable( lower(name) );
> >
> > This will give you the most efficient access if you have many records in
> > 'mytable', whereas ILIKE will require a full-table scan.
> >
> > Regards,
> > Andrew.
>
> --
> Hervé Piedvache
>
> Elma Ingénierie Informatique
> 6 rue du Faubourg Saint-Honoré
> F-75008 - Paris - France
> Tel. 33-144949901
> Fax. 33-144949902
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
From | Date | Subject | |
---|---|---|---|
Next Message | Patrick Hatcher | 2002-10-24 00:04:21 | How do I display an image? |
Previous Message | Bruno Wolff III | 2002-10-22 11:46:28 | Re: search/select case-insensitivly. |