Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
MySQL: condición LIKE
Este tutorial de MySQL explica cómo usar MySQL ME GUSTA condiciones La coincidencia de patrones se realiza mediante sintaxis y ejemplos.
describir
La condición LIKE de MySQL permite caracteres comodín en la cláusula WHERE de una instrucción SELECT, INSERT, UPDATE o DELETE. Esto le permite realizar coincidencias de patrones.
sintaxis
La sintaxis de la condición LIKE en MySQL es:
expression LIKE pattern [ ESCAPE 'escape_character' ]
parámetro o parámetro
Expresión Una expresión de carácter, como una columna o un campo.patrón
Una expresión de caracteres que contiene una coincidencia de patrones. Los modos que puede elegir son:
comodín | explique |
---|---|
% | Le permite hacer coincidir cualquier cadena de cualquier longitud (incluida la longitud cero) |
_ | le permite hacer coincidir un solo carácter |
escape_character es opcional. Le permite probar instancias literales de caracteres comodín como % o _. Si no proporciona escape_character, MySQL asume que “” es escape_character.
Ejemplo: uso del comodín % (comodín de porcentaje)
El primer ejemplo de MySQL LIKE que veremos implica el uso del comodín % (comodín de porcentaje).
Expliquemos cómo funciona el comodín % en condiciones LIKE de MySQL. Queremos encontrar todos los clientes cuyo apellido comience con “Sm”.
SELECT customer_name FROM customers WHERE last_name LIKE 'Sm%';
También puede usar el comodín % varias veces en la misma cadena. Por ejemplo,
SELECT customer_name FROM customers WHERE last_name LIKE '%it%';
En este ejemplo de condición LIKE de MySQL, buscamos a todos los clientes cuyo apellido contenga los caracteres “it”.
Ejemplo: uso de _ comodín (comodín de subrayado)
A continuación, vamos a explicar cómo funciona el comodín _ (comodín de subrayado) en condiciones LIKE de MySQL. Recuerda que el comodín _ solo busca un carácter.
Por ejemplo:
SELECT supplier_name FROM suppliers WHERE supplier_name LIKE 'Sm_th';
Este ejemplo de condición LIKE de MySQL devolverá todos los proveedores cuyo nombre_proveedor tenga 5 caracteres, donde los dos primeros caracteres son ‘Sm’ y los dos últimos caracteres son ‘th’. Por ejemplo, podría devolver proveedores con nombres de proveedor “Smith”, “Smyth”, “Smath”, “Smeth”, etc.
Aquí hay otro ejemplo:
SELECT * FROM suppliers WHERE account_number LIKE '12345_';
Puede encontrar que está buscando un número de cuenta, pero solo tiene 5 de 6 dígitos. El ejemplo anterior podría recuperar 10 registros (donde el valor faltante podría ser igual a cualquier valor del 0 al 9). Por ejemplo, puede devolver números de cuenta como:
123450, 123451, 123452, 123453, 123454, 123455, 123456, 123457, 123458, 123459
Ejemplo: uso del operador NOT
A continuación, veamos cómo usar el operador NOT con comodines.
Usemos el comodín % con el operador NOT.También puede usar la condición LIKE de MySQL para encontrar nombres que son No Comienza con “G”.
Por ejemplo:
SELECT supplier_name FROM suppliers WHERE supplier_name NOT LIKE 'G%';
Al colocar el operador NOT delante de la condición LIKE de MySQL, puede recuperar todos los proveedores cuyos nombres son No Comienza con “G”.
Ejemplo: uso de caracteres de escape
Es importante entender cómo “escapar de los caracteres” al hacer coincidir patrones. Estos ejemplos tratan específicamente con caracteres de escape en MySQL.
Suponga que desea buscar el carácter % o _ en una condición LIKE de MySQL. Puede usar el carácter Escape para hacer esto.
Tenga en cuenta que solo puede definir caracteres de escape como un solo carácter (longitud 1).
Por ejemplo:
SELECT * FROM suppliers WHERE supplier_name LIKE 'G%';
Dado que no especificamos un carácter de escape, MySQL asume que “” es el carácter de escape. MySQL luego asume que el carácter de escape es “”, lo que hace que MySQL trate el carácter % como un literal en lugar de un comodín. Esta declaración devolverá todos los proveedores cuyo nombre de proveedor sea G%.
Podemos anular los caracteres de escape predeterminados en MySQL proporcionando el modificador ESCAPE de la siguiente manera:
SELECT * FROM suppliers WHERE supplier_name LIKE 'G!%' ESCAPE '!';
Este ejemplo de condición LIKE de MySQL identifica el carácter ! como un carácter de escape. ¡Esta! Los caracteres de escape harán que MySQL trate el carácter % como un literal. Por lo tanto, esta declaración también devolverá todos los proveedores cuyo nombre de proveedor sea G%.
Aquí hay otro ejemplo más complejo del uso de caracteres de escape en condiciones LIKE de MySQL.
SELECT * FROM suppliers WHERE supplier_name LIKE 'H%%';
Este ejemplo de condición LIKE de MySQL devuelve todos los proveedores cuyos nombres comienzan con H y terminan con %. Por ejemplo, devolverá un valor como “Hola%”. Dado que no especificamos un carácter de escape en la condición LIKE, MySQL asumió que el carácter de escape era “”, lo que provocó que MySQL tratara el segundo carácter % como un literal en lugar de un comodín.
Podemos modificar esta condición LIKE especificando caracteres de escape de la siguiente manera:
SELECT * FROM suppliers WHERE supplier_name LIKE 'H%!%' ESCAPE '!';
Este ejemplo de condición LIKE de MySQL devuelve todos los proveedores cuyos nombres comienzan con H y terminan con el % literal. Por ejemplo, devolverá un valor como “Hola%”.
También puede usar caracteres de escape con el carácter _ en condiciones LIKE de MySQL.
Por ejemplo:
SELECT * FROM suppliers WHERE supplier_name LIKE 'H%_';
Además, dado que no se proporciona ningún modificador ESCAPE, MySQL usa “” como carácter de escape, lo que hace que el carácter _ se trate como un literal en lugar de un comodín. Este ejemplo luego devuelve todos los proveedores cuyos nombres comienzan con H y terminan con _. Por ejemplo, devolverá un valor como “Hola_”.