Jump to content


Photo

distinguir entre mayuscula y minusculas al realizar una busqueda


  • Please log in to reply
2 replies to this topic

#1 andrescito

andrescito

    Member

  • Miembros
  • PipPip
  • 10 posts

Posted 12 January 2012 - 04:46 PM

como puedo hacer para que al buscar atraves de un formulario creado en php pueda buscar datos que tengo dentro de la base de datos de msql.. sin que distinga entre mayusculas ni en minuscula.. que de la forma que este escrito me arroje el mismo resultado..
debo crear una base de datos con alguna caracteristica especial
desde ya muchas gracias,.

  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3486 posts
  • LocationMexico City

Posted 12 January 2012 - 05:03 PM

Yo lo que hago para solucionar este detalle es hacer mis búsquedas haciendo un UPPER del campo, es decir que convierta el valor almacenado en mayúsculas y desde el sistema (delphi en mi caso) obligo a que también el valor que intento encontrar esté escrito en mayúsculas...

Aclaro que lo de "convertir el valor a mayúsculas" sólo aplica al momento de buscar, realmente el valor almacenado no pierde el formato en el que fué guardado...  *-)

Saludox ! :)
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 13 January 2012 - 07:10 AM

Aqui entra en juego los charsets y collates de la BD MySQL, generalmente para esos fines siempre se utiliza el Charset utf8 y el collate utf8_general_ci o utf8_spanish_ci (donde _ci significa case insensitive), dejo unas muestras y tu eliges la que mas te adapte:

1. No distinga Mayuscula, Minusculas y Acentos (OJO: la BD debe ser utf8 y la tabla utf8_general_ci o utf8_spanish_ci), en este caso solo realizas una consulta normal:

SELECT * FROM `TABLA` WHERE `CAMPO` = 'algo'


2. Distinga Mayusculas, Minusculas y acentos:

SELECT * FROM `TABLA` WHERE `CAMPO` = 'josé' COLLATE utf8_bin


3. Distinguir acentos, sin distinguir Mayusculas y Minusculas:

SELECT * FROM `TABLA` WHERE UPPER(`CAMPO`) = UPPER('josé) COLLATE utf8_bin


Saludos.


  • 0




IP.Board spam blocked by CleanTalk.