MySQL

MySQL LIKE: Búsquedas de patrones en tablas usando comodines

nueva entrada para repasar la cláusula de MySQL LIKE, su funcionalidad es la de realizar búsquedas de patrones en las tablas mediante el uso de comodines.

Anteriormente ya vimos cómo realizar búsquedas con WHERE, pero estas tenían que ser exactas, con LIKE podemos realizar unas búsquedas en columnas que contengan ciertos caracteres o cadenas.

Otras cláusulas de MySQL son:

Sintaxis de MySQL LIKE

Veamos la sintaxis extraída de su web oficial usando los 2 comodines ‘%’ y ‘_’:

/* Con el comodín % */ 
SELECT * FROM nombre_tabla WHERE nombre_columna LIKE '%PATRON%';
/* Con el comodín _ */SELECT * FROM nombre_tabla WHERE nombre_columna LIKE _%CARACTER_';

Os explico la sintaxis:

  • En la primera sintaxis estamos realizando una SELECT con el comodín ‘%’, este tiene como finalidad ignorar todos los caracteres que estén antes y/o después del patrón.
  • En la segunda, estamos realizando una SELECT con el comodín ‘_’, este tiene como finalidad ignorar un único caracter por cada ‘_’ que esté antes y/o después del patrón.

Ejemplos de MySQL LIKE

Vayamos con los ejemplos del comodín LIKE:

SELECT * FROM clientes WHERE nombre LIKE '%m%';

En el código superior estamos buscando los clientes que contengan una ‘m’ en el nombre.

SELECT * FROM clientes WHERE nombre LIKE 'M%';

En el código superior estamos buscando los clientes cuyo nombre comienza por ‘M’.

SELECT * FROM clientes WHERE nombre LIKE '%a';

En el código superior estamos buscando los clientes cuyo nombre termina con ‘a’.

SELECT * FROM clientes WHERE nombre LIKE '_a%';

En el código superior estamos buscando los clientes cuyo nombre tiene como segundo caracter la ‘a’.

SELECT * FROM clientes WHERE nombre LIKE '_______';

En el código superior estamos buscando los clientes cuyo nombre tiene 7 caracteres de longitud.

SELECT * FROM clientes WHERE nombre LIKE '%a%' or nombre LIKE '%r%' ;

En el código superior estamos buscando los clientes cuyo nombre tiene una ‘a’ y una ‘r’.

compartir
Publicado por
Aner Barrena