En esta ocasión os voy a mostrar con ejemplos prácticos, como funcionan los patrones de búsqueda en SQL, con la cláusula LIKE.
Para las prácticas, utilizaremos las tablas que vienen con la instalación de MySQL, ‘world’ y ‘sakila’.
La cláusula LIKE de SQL
La cláusula LIKE se usa para buscar valores que coincidan con un patrón específico en una columna. Es posible utilizar dos caracteres especiales con la cláusula LIKE. El símbolo ‘%’ que representa cualquier cantidad de caracteres o el símbolo ‘_’ que representa un solo caracter.
Vamos a la tabla actor de la base de datos ‘sakila’. Hagamos alguna consulta de prueba.
El símbolo % con LIKE
Vamos a seleccionar todos los campos de la tabla ‘actor’ y buscaremos en el WHERE, junto con LIKE, a todas las personas cuyo nombre empiece por la letra ‘E’. Lo que venga después, a la derecha de esta letra, será un número indefinido de caracteres.
SELECT * FROM actor WHERE first_name LIKE 'E%';
Esto está encontrando todos los nombres que empiezan con la letra ‘E’. Después, da igual si tiene una letra más, como ‘ED’ o si tienen 20. Salen todos.
Vamos a la tabla ‘country’ de la base de datos world. Ahí, probaremos de buscar una palabra en concreto. Todos los países que contengan la palabra ‘island’. El problema aquí, es que esta palabra, no aparece al principio y en algunos casos, sale en plural ‘islands’. Por lo tanto, tenemos que utilizar el comodín ‘%’ al principio y al final:
SELECT * FROM country WHERE Name LIKE '%island%';
El símbolo _ con LIKE
Ahora, probemos con el otro símbolo. Con la siguiente consulta, estoy encontrando todos los nombres que empiezan por ‘E’ y tienen un solo caracter a la derecha. En este caso, solo se cumplen los ‘ED’.
SELECT * FROM actor WHERE first_name LIKE 'E_';
Este símbolo, también nos puede ser de gran utilidad si queremos encontrar resultados de por ejemplo, 5 caracteres, independientemente de los que sean.
SELECT * FROM actor WHERE first_name LIKE '_____';
¿Quieres nombres de 5 caracteres que acaben con la letra ‘A’? Pues lo puedes hacer así:
SELECT * FROM actor WHERE first_name LIKE '____A';
Combinaciones con de símbolos en LIKE de SQL
Es posible crear filtros más complejos mediante la combinación de estos símbolos. Veamos un ejemplo práctico.
Aquí estoy filtrando por apellido. El número de caracteres es libre hasta llegar a una ‘i’. Después de esta primera ‘i’,. Solo podrán venir apellidos que tengan dos caracteres más.
SELECT * FROM actor WHERE last_name LIKE '%i__';
Hasta aquí este capítulo. En el siguiente, veremos como funcionan los patrones de búsqueda con la cláusula IN.
No te pierdas nada del curso Máster en SQL.
Ejemplos muy buenos y prácticos