23 noviembre 2006

SQL: El tremendo SELECT parte 4 - el WHERE se encadena

El trabajo con texto en una base de datos es todo un relajo. Si estás buscando un texto, pero no le pusiste acento, te equivocaste con una letra u otro error de dedo, obtienes una consulta de datos que no querías o diste de alta un registro con datos erróneos.

Por eso, cuando trabajamos con texto, usamos fragmentos de texto (llamadas subcadenas por lo pipirisnais informáticos) para la búsqueda. Usamos parte del texto, algo que estamos seguros que está bien.

Para poder manejar esto, exiten los operadores LIKE y NOT LIKE, las cuales me permiten buscar subcadenas dentro de un campo de tipo texto. Por ejemplo, si quiero buscar a todos los registros cuyo nombre comience con las letras "Hern" sin importar los caracteres que estén a la derecha de este texto, escribiría la siguiente instrucción SELECT:

SELECT Nombre,ApellidoP,ApellidoM,Edad
FROM Alumnos
WHERE Nombre LIKE 'Fer*'


El asterisco sirve para indicar cualquier conjunto de caracteres (incluyendo una subcadena vacía). En algunos "dialectos" de SQL (o sea, en diferentes manejadores de bases de datos o DBMS), se usa el signo de porciento (%) en lugar del asterisco (*).

Por ejemplo, la sentencia SQL anterior devolvería los registros cuyo campo Nombre fuera Fernando, Fernanda, Fercho, Fermín, etc.

Ahora, si quiero que tenga la subcadena "Fer" en cualquier parte del campo, podría escribir la siguiente instrucción:

SELECT Nombre
FROM Alumnos
WHERE Nombre LIKE '*Fer*'


Lo cual me devolvería los nombres de Fernanda, Fernando, María Fernanda, MaFer, Fercho, Fermín, Ana Fernanda, Juan Fermín, etc.
Puedo jugar con el asterisco de diferentes maneras y estoy seguro que a partir de los ejemplos que escribí, no tendrás problemas en aplicarlos a diferentes consultas.
Publicar un comentario
Related Posts Plugin for WordPress, Blogger...