RE: search is not case insensitive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: tedd [mailto:tedd.sperling@xxxxxxxxx]
> Sent: Tuesday, November 02, 2010 8:09 AM
> To: Tommy Pham; gp@xxxxxxxxxxxxxxxxx; php-general@xxxxxxxxxxxxx
> Subject: RE:  search is not case insensitive
> 
> At 10:23 PM -0700 11/1/10, Tommy Pham wrote:
> >  > -----Original Message-----
> >>  From: tedd [mailto:tedd.sperling@xxxxxxxxx]
> >>  Sent: Sunday, October 31, 2010 9:00 AM
> >>  To: gp@xxxxxxxxxxxxxxxxx; php-general@xxxxxxxxxxxxx
> >>  Subject: Re:  search is not case insensitive
> >>
> >>  At 3:47 PM +1100 10/31/10, Dr Michael Daly wrote:
> >>  >Hi
> >>  >Using a php search form produces a nil return on any information
> >>that
> >>  >is capitalised within a mysql database; retrieval is fine for
> >>  >non-capitalised data. Could someone tweak this please? The relevant
> >>  >code I think is as
> >>  >follows:
> >>  >
> >>  >// Description is a BLOB in MySQL... we need to UPPER the blob
> >>//values
> >>  >to make the search case-insensitive.
> >>  >
> >>  >	$query = "SELECT C.*, A.surname, A.name, A.surname_prefix, A.id
> >>  AS user
> >>  >FROM pbcs_user A, pbcs_join_table_user_app B, pbcs_appointment C
> >>	".
> >>  >
> >>  >				"WHERE A.id = B.user_id AND
> >>  >B.appointment_id = C.id	".
> >>  >
> >>  >				"AND LOWER(C.description) LIKE
> >>  >'%".strtolower($search_for)."%' AND
> >>  >C.start_time > $start_time AND C.start_time < $end_time ORDER BY
> >>  >C.start_time";
> >>  >	$result = pbcs_db_query($query);
> >>  >
> >>  >Thanks
> >>  >Michael
> >>  >Melb, Aust.
> >>
> >>  Why are you using a BLOB?
> >>
> >>  You are just storing text data, right? If so, then a VARCHAR will
work.
> >>
> >>  Additionally, using a BLOB changes things somewhat in that all data
> >> are  stored as binary strings and as such makes all comparisons case-
> sensitive.
> >>  Too many double negatives for me.
> >>
> >>  Cheers,
> >>
> >>  tedd
> >>  --
> >>  -------
> >>  http://sperling.com/
> >>
> >
> >IIRC, the VARCHAR (for MySQL) has a limit of 255 chars.  You may have
> >to use one of the *TEXT variants if you need to store a lot of text.
> >
> >Regards,
> >Tommy
> 
> Tommy:
> 
> If you are using a version of MySQL that is older than v 5.0.3, then you
are
> right -- but after that version VARCHAR can hold up to 65,535 characters.

Tedd,

That tells you that I haven't been keeping track of version changes for
MySQL.  I remember that when 5 was still an RC.

> How much does the OP need?
> 
> If that is not enough room, then why not use LONGTEXT (4G)?
> 
> The differences are how the data is stored. In BLOBS the data is stored in
> binary strings with no char set and comparisons are based on numeric
values
> of bytes. Whereas, TEXT data are treated as character strings which have a
> char set and can be sorted and compared based upon collation of the char
> set.
> 
> Cheers,
> 
> tedd
> 
> 
> --
> -------
> http://sperling.com/

I totally agree on VARCHAR/TEXT over BLOBs as you can use the index
(with/without FULLTEXT) more efficiently for faster query results.

Regards,
Tommy


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux