Usos de las sub-funciones LIKE e IN
En la clase anterior aprendimos que podemos utilizar WHERE para aplicarle condiciones al tipo de información que queremos extraer de nuestras tablas. También utilizamos símbolos para comparar campos de la base de datos con un valor deseado o String.
En esta lección veremos el uso de las sub-sentencias LIKE e IN.
Uso de LIKE
Con LIKE podemos buscar patrones. En si el LIKE es muy similar a usar = para comparar registros, lo único que es más flexible. Utilizar = para comparar solo trae registros que sean exactamente igual a valor que se evalúa. Pero con el LIKE se pueden especificar patrones, espacios y comodines con los cual evaluar los registros solicitados. Por ejemplo utilicemos nuevamente la tabla MCUSERS:
MCUSERS
ID|NOMBRE|NIVEL|SEXO
1|Massy|Mcuser|F
2|Vashu|Webmaster|M
3|Sparohawk|Webmaster|M
4|Exema|Mcuser|M
5|Hades|Moderador|M
6|Max|Webmaster|M
Si quisiéramos buscar todos los usuarios que comiencen con la letra M pudiéramos usar LIKE de esta manera:
SELECT *
FROM mcusers
WHERE nombre
LIKE ‘M%’
Esto nos traería estos registros:
ID|NOMBRE|NIVEL|SEXO
1|Massy|Mcuser|F
6|Max|Webmaster|M
Utilicé el símbolo de porciento ya que este es el comodín si dijera por ejemplo %M% estaría diciendo cualquier registro que tenga una ‘M’ (M mayúscula) en alguna parte del campo evaluado. Como ya había mencionado en SQL las mayúsculas importan (las mayúsculas no importan en los nombres de campos o de funciones de SQL solo importan en los registros).
Puedes también escribir por ejemplo:
SELECT *
FROM mcusers
WHERE nombre
LIKE ‘S%k’
Y esto nos traerá todos los registros que comienzan con ‘S’ (mayúscula) y termina con ‘k’.
También podríamos utilizar el “underscore” ( _ ) como comodín. Pero este es el “comodín de un espacio”, ósea que solo evalua un espacio. Por ejemplo:
SELECT *
FROM mcusers
WHERE nombre
LIKE ‘Ma_’
Esto nos traeria cualquier palabra de tres letras que comience con ‘Ma’ y termine con cualquier letra. No nos traeria el registro 1 de Massy ya que no cumple con ese patrón, pero si nos traería:
ID|NOMBRE|NIVEL|SEXO
6|Max|Webmaster|M
o podemos usar:
SELECT *
FROM mcusers
WHERE nombre
LIKE ‘V_s%u’
Y busca registros que comiencen con ‘V’ seguidas de cualquier letra, una ‘s’ y que termine en ‘u’.
ID|NOMBRE|NIVEL|SEXO
2|Vashu|Webmaster|M
Uso de IN
In nos permite traer conjuntos de registros que posean en ellos valores determinados. Por ejemplo.
SELECT *
FROM mcusers
WHERE nivel
IN (‘Mcuser’,’Moderador’)
Este nos permite buscar los registros que posean las palabras Moderador y Mcuser en el campo nivel. Podemos agregar cuantas palabras deseemos dentro los paréntesis separadas por comas y si aparece una de ellas este registro será desplegado.
Más adelante cuando veamos los SELECT anidados, verán un importante uso para esta sub-función. Esto es todo por este capitulo. en la proxima veremos los usos BETWEEN, la negacion y como utilizar funciones para facilitar la busqueda.