Ir al contenido


Foto

distinguir entre mayuscula y minusculas al realizar una busqueda


  • Por favor identifícate para responder
2 respuestas en este tema

#1 andrescito

andrescito

    Member

  • Miembros
  • PipPip
  • 10 mensajes

Escrito 12 enero 2012 - 04:46

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
  • 3.486 mensajes
  • LocationMexico City

Escrito 12 enero 2012 - 05:03

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
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 13 enero 2012 - 07:10

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.