Páginas

martes, 5 de agosto de 2014

SQL: Like y upper para búsquedas de registros


SQL: 

Like y upper para búsquedas de registros


Bueno, pues contestando a un compañero del foro de gambas-es.org, sobre búsquedas en consultas SQL, he encontrado un ejemplo que esta muy bien, y puede ser muy útil para aplicarlo a nuestras aplicaciones.

El caso es que necesitaba una consulta que buscara en el campo "nombre" de la una tabla llamada "Profesores"

Se plantea los siguientes problemas:
1) Muchas veces el usuario no sabe el nombre completo del profesor.
2) Introducir el nombre que busca, lo pone o todo en minúsculas o todo en mayúsculas o la primera en mayúsculas  y el resto en minúsculas (que es lo más habitual).

Si el usuario escribe en el campo de búsqueda "Juan" y no se acuerda se era "Juan Julian", o "Juan Antonio" o "Juan Felipe"¿como hacemos una consulta que nos devuelva los resultados más aproximados?

De la siguiente manera:

Select * from Profesores where upper(nombre) like upper('%Juan%')

Con like y  '%Juan%' estamos buscando en los registros, los que tengan contenido "Juan"

Y con upper, lo que hacemos es poner tanto en mayúsculas el campo "nombre" como "Juan", para así comparar "en igualdad de condiciones" (todo en mayúsculas) el contenido del campo nombre del registro con la palabra buscada (Juan)

Saludos


Fuentes:
http://www.clubdelphi.com/foros/showthread.php?t=20601