El operador LIKE en SQL es una herramienta poderosa para realizar búsquedas de patrones dentro de columnas de texto.
Este operador es ampliamente utilizado cuando necesitamos encontrar registros que coincidan parcial o totalmente con un criterio específico.
El operador LIKE nos permite buscar valores en una columna que cumplan con un patrón determinado. Este patrón puede incluir:
%: Representa cero, uno o más caracteres. Se usa para coincidir con cualquier cantidad de caracteres en una parte de la cadena.% al inicio: Permite encontrar cualquier valor que contenga la cadena especificada en cualquier parte del texto.% al final: Busca cualquier texto que comience con la subcadena especificada.LIKE '%busqueda%': Cuando el operador LIKE en SQL tiene el comodín % al principio y al final de la cadena, significa que la búsqueda buscará cualquier valor que contenga “busqueda” en cualquier parte de la cadena._: Representa un solo carácter. Se usa cuando se quiere coincidir con un carácter específico en una posición determinada.Se utiliza principalmente en consultas SELECT para filtrar registros en bases de datos relacionales.
Tabla: estudiantes
| id | nombre | apellido | email |
|-----|--------|----------|----------------------------|
| 1 | Juan | Pérez | juan.perez@gmail.com |
| 2 | Ana | Ramírez | ana.ramirez@yahoo.com |
| 3 | Pedro | López | pedro.lopez@hotmail.com |
| 4 | María | Gómez | maria.gomez@gmail.com |
| 5 | Carlos | Santana | carlos.santana@outlook.com | SELECT * FROM estudiantes
WHERE apellido LIKE '%ez'; Resultado:
| id | nombre | apellido | |
|---|---|---|---|
| 1 | Juan | Pérez | juan.perez@gmail.com |
| 3 | Pedro | López | pedro.lopez@hotmail.com |
SELECT * FROM estudiantes WHERE email LIKE '%@gmail.com'; Resultado:
| id | nombre | apellido | |
|---|---|---|---|
| 1 | Juan | Pérez | juan.perez@gmail.com |
| 4 | María | Gómez | maria.gomez@gmail.com |
comidas| id | nombre | tipo |
|---|---|---|
| 1 | Pizza | Italiana |
| 2 | Hamburguesa | Americana |
| 3 | Tacos | Mexicana |
| 4 | Sushi | Japonesa |
| 5 | Ensalada César | Saludable |
Cuando el operador LIKE usa el comodín *% al final de la cadena, se busca cualquier valor que empiece con la subcadena especificada, permitiendo cualquier cantidad de caracteres después de ella.
SELECT * FROM comidas WHERE nombre LIKE 'P%'; Resultado:
| id | nombre | tipo |
|---|---|---|
| 1 | Pizza | Italiana |
Selecciona todas las filas de la tabla comidas donde la columna tipo contiene la cadena “ana” en cualquier parte de su valor.
El comodín % antes y después de “ana” permite que haya cualquier cantidad de caracteres antes o después de “ana”.
SELECT * FROM comidas WHERE tipo LIKE '%ana%'; Resultado:
| id | nombre | tipo |
|---|---|---|
| 2 | Hamburguesa | Americana |
| 3 | Tacos | Mexicana |
productos| id | nombre | categoría |
|---|---|---|
| 1 | Laptop | Electrónica |
| 2 | Televisor | Electrónica |
| 3 | Refrigerador | Electrodoméstico |
| 4 | Lavadora | Electrodoméstico |
| 5 | Celular | Electrónica |
SELECT * FROM productos
WHERE nombre LIKE 'L%'; Resultado:
| id | nombre | categoría |
|---|---|---|
| 1 | Laptop | Electrónica |
| 4 | Lavadora | Electrodoméstico |
SELECT * FROM productos WHERE nombre LIKE '%er%'; Resultado:
| id | nombre | categoría |
|---|---|---|
| 3 | Refrigerador | Electrodoméstico |
| 4 | Lavadora | Electrodoméstico |
empleados| id | nombre | puesto |
|---|---|---|
| 1 | Pedro | Gerente |
| 2 | Ana | Asistente |
| 3 | María | Gerente |
| 4 | Andrés | Asistente |
| 5 | Carlos | Técnico |
SELECT * FROM empleados WHERE puesto LIKE 'G%'; Resultado:
| id | nombre | puesto |
|---|---|---|
| 1 | Pedro | Gerente |
| 3 | María | Gerente |
SELECT * FROM empleados WHERE nombre LIKE '%ra%'; Resultado:
| id | nombre | puesto |
|---|---|---|
| 3 | María | Gerente |
| 4 | Andrés | Asistente |
libros| id | título | autor |
|---|---|---|
| 1 | La Odisea | Homero |
| 2 | Cien años de soledad | Gabriel García Márquez |
| 3 | Matar a un ruiseñor | Harper Lee |
| 4 | El principito | Antoine de Saint-Exupéry |
| 5 | 1984 | George Orwell |
SELECT * FROM libros WHERE título LIKE 'C%'; Resultado:
| id | título | autor |
|---|---|---|
| 2 | Cien años de soledad | Gabriel García Márquez |
Encontrar registros que contengan una subcadena en cualquier parte del texto. Esto significa que cualquier texto antes o después de la subcadena especificada será aceptado.
SELECT * FROM libros WHERE autor LIKE '%e%'; Resultado:
| id | título | autor |
|---|---|---|
| 1 | La Odisea | Homero |
| 2 | Cien años de soledad | Gabriel García Márquez |
| 3 | Matar a un ruiseñor | Harper Lee |
| 5 | 1984 | George Orwell |
LIKE no es sensible a mayúsculas y minúsculas en bases de datos como MySQL, pero puede ser sensible en otras como PostgreSQL, a menos que se utilicen funciones adicionales.LIKE con otros operadores (AND, OR, etc.).Con el operador LIKE, las búsquedas de patrones se vuelven mucho más sencillas y flexibles, lo que facilita la manipulación de datos en bases de datos.