SQL - Cláusula LIKE
El SQL LIKELa cláusula se usa para comparar un valor con valores similares usando operadores comodín. Hay dos comodines que se utilizan junto con el operador LIKE.
- El signo de porcentaje (%)
- El subrayado (_)
El signo de porcentaje representa cero, uno o varios caracteres. El guión bajo representa un solo número o carácter. Estos símbolos se pueden utilizar en combinaciones.
Sintaxis
La sintaxis básica de% y _ es la siguiente:
SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'
Puede combinar N número de condiciones utilizando operadores AND u OR. Aquí, XXXX podría ser cualquier valor numérico o de cadena.
Ejemplo
La siguiente tabla tiene algunos ejemplos que muestran que la parte WHERE tiene una cláusula LIKE diferente con operadores '%' y '_' -
No Señor. | Declaración y descripción |
---|---|
1 | WHERE SALARY LIKE '200%' Encuentra cualquier valor que comience con 200. |
2 | WHERE SALARY LIKE '%200%' Encuentra cualquier valor que tenga 200 en cualquier posición. |
3 | WHERE SALARY LIKE '_00%' Encuentra cualquier valor que tenga 00 en la segunda y tercera posición. |
4 | WHERE SALARY LIKE '2_%_%' Busca cualquier valor que comience con 2 y tenga al menos 3 caracteres de longitud. |
5 | WHERE SALARY LIKE '%2' Encuentra cualquier valor que termine en 2. |
6 | WHERE SALARY LIKE '_2%3' Encuentra cualquier valor que tenga un 2 en la segunda posición y termine con un 3. |
7 | WHERE SALARY LIKE '2___3' Encuentra cualquier valor en un número de cinco dígitos que comience con 2 y termine con 3. |
Tomemos un ejemplo real, considere la tabla CLIENTES que tiene los registros que se muestran a continuación.
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
A continuación se muestra un ejemplo, que mostraría todos los registros de la tabla CLIENTES, donde SALARIO comienza con 200.
SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';
Esto produciría el siguiente resultado:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
+----+----------+-----+-----------+----------+