SQL LIKEOperadores
El operador LIKE se utiliza para buscar el patrón especificado en una columna en la cláusula WHERE.
LIKEEl operador es una palabra clave en SQL utilizada en laWHEREcláusula para realizar consultas difusas, que nos permite seleccionar datos según la coincidencia de patrones, generalmente se usa con%y_junto con comodines.
Sintaxis de SQL LIKE
SELECT column1, column2, ... FROM table_name WHERE column_name LIKE pattern;
Descripción de parámetros:
- column1, column2, ...: el nombre del campo a seleccionar, puede ser múltiples campos. Si no se especifica el nombre del campo, se seleccionarán todos los campos.
- table_name: el nombre de la tabla a consultar.
- column: el nombre del campo a buscar.
- pattern: el patrón de búsqueda.
Comodines
%: coincide con cualquier carácter (incluyendo cero caracteres)._: coincide con un solo carácter.
Ejemplos
Supongamos que tenemos una tabla llamada Products con los siguientes datos:
| ProductID | ProductName | Category |
|---|---|---|
| 1 | iPhone 12 | Electronics |
| 2 | Samsung Galaxy S21 | Electronics |
| 3 | Dell XPS 13 | Electronics |
| 4 | Nike Air Zoom | Footwear |
| 5 | Adidas Ultraboost | Footwear |
| 6 | Sony PlayStation 5 | Electronics |
Usando%el comodín para encontrar todos los productos que comienzan con 'iPhone':
SELECT ProductName, Category FROM Products WHERE ProductName LIKE 'iPhone%';
Devuelve los siguientes datos:
| ProductName | Category |
|---|---|
| iPhone 12 | Electronics |
Usando_el comodín para encontrar todos los productos cuyo segundo carácter del nombre sea 'e':
SELECT ProductName, Category FROM Products WHERE ProductName LIKE '_e%';
Devuelve los siguientes datos:
| ProductName | Category |
|---|---|
| Dell XPS 13 | Electronics |
Combinando%y_los comodines para encontrar todos los productos cuyo nombre contenga 'Zoom':
SELECT ProductName, Category FROM Products WHERE ProductName LIKE '%Zoom%';
Devuelve los siguientes datos:
| ProductName | Category |
|---|---|
| Nike Air Zoom | Footwear |
Base de datos de demostración
En este tutorial, utilizaremos la base de datos de ejemplo EJEMPLO.
A continuación se muestran los datos seleccionados de la tabla 'Websites':
mysql> SELECT * FROM Websites; +----+---------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+---------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | Ejemplo | http://www.example.com/ | 5000 | USA | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
Ejemplos del operador SQL LIKE
La siguiente instrucción SQL selecciona todos los clientes cuyo nombre comienza con la letra 'G':
Ejemplo
WHERE name LIKE 'G%';
Resultado de la ejecución:
Consejo:El símbolo '%' se utiliza para definir comodines antes y después del patrón (letras predeterminadas). Aprenderá más sobre comodines en el próximo capítulo.
La siguiente instrucción SQL selecciona todos los clientes cuyo nombre termina con la letra 'k':
Ejemplo
WHERE name LIKE '%k';
Resultado de la ejecución:
La siguiente instrucción SQL selecciona todos los clientes cuyo nombre contiene el patrón 'oo':
Ejemplo
WHERE name LIKE '%oo%';
Resultado de la ejecución:
Mediante el uso de la palabra clave NOT, puede seleccionar registros que no coincidan con el patrón.
La siguiente instrucción SQL selecciona todos los clientes cuyo nombre no contiene el patrón 'oo':
Ejemplo
WHERE name NOT LIKE '%oo%';
Resultado de la ejecución: