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 |
+----+----------+-----+-----------+----------+