Google
Web dns.bdat.net

Re: [PHP-ES] MySQL case sensitive

From: Javier Armendáriz ( jarmendariz(EN)teleline.es)
Date: Tue Sep 07 2004 - 18:46:55 CEST


Quizas sirva, aunque aqui de PHP no he escrito ni una sola palabra. No
tien porque relentizar demasiado la busqueda.

Si no es problema, siempre sera mejor almacenarlo todo en minuscular y
pasar a minusculas unicamente la clausula de busqueda

mysql> describe users;
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| LogonID | varchar(20) | | PRI | 0 | |
| Name | varchar(40) | YES | | NULL | |
| Password | varchar(20) | YES | | NULL | |
| EmailAddress | varchar(40) | YES | | NULL | |
| LastLogon | datetime | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

mysql> select * from users;
+---------+------+----------+-----------------+---------------------+
| LogonID | Name | Password | EmailAddress | LastLogon |
+---------+------+----------+-----------------+---------------------+
| PePe | Pepe | PaSSwoRd | e-MAIL(EN)MaIl.COM | 2004-09-03 12:12:12 |
+---------+------+----------+-----------------+---------------------+
1 row in set (0.00 sec)

mysql> select * from users where lower(name) = lower("PEPE");
+---------+------+----------+-----------------+---------------------+
| LogonID | Name | Password | EmailAddress | LastLogon |
+---------+------+----------+-----------------+---------------------+
| PePe | Pepe | PaSSwoRd | e-MAIL(EN)MaIl.COM | 2004-09-03 12:12:12 |
+---------+------+----------+-----------------+---------------------+
1 row in set (0.00 sec)

pvergara(EN)tqr.biz wrote:

>El Martes 07 Septiembre 2004 18:02, Gabriel Gramajo escribió:
>
> Aunque eso de varchar suena más a MySQL que otra cosa y para dicho fin hay una lista muy maja ( mysql(EN)opensource.org.mx)... te comento que, si no he entendido mal lo que tu querrás será
>poder buscar utilizando un SELECT pero que la condición del WHERE no te haga todo tan "estricto" con los campos de tipo varchar (y me imagino que con los text igual)... bueno tienes dos formas:
>
> La forma más rápida pero que puede ser demasiado "libre" en función del caso es utilizando un LIKE '%%' tiene el problema de que usa mucho comodín y quizás te saque más de lo que quieres... pero
>ya te digo que es muy rápida.
>
> La forma más costosa pero más específica (aunque ya el tema de los acentos y las ñ... no te puedo asegurar que tiren bien) es antes de insertar o modificar algo (o en la misma SQL... de echo es mejor en
>la propia SQL) pasar lo que no quieras que sea case sensitve a mayúsculas o minúsculas... y cuando vayas a hacer una búsqueda realizas el mismo paso... la coña de esto?... bueno pues que si el usuario quiere
>aprovechar un sistema más... como decirlo?... case sensitive .. pues no puede.
>
> Saludos.
>
>
>
>>Hay alguna forma en la que se puedan implementar ordenes en campos del tipo varchar de forma que no respete el case sensitive.
>>
>>Saludos y gracias desde ya,
>>
>>Gabriel.
>>
>>
>
>
>

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


This archive was generated by hypermail 2.1.7 : Tue Sep 21 2004 - 21:34:44 CEST