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.
PostgreSQL: condición LIKE
Este tutorial de PostgreSQL explica cómo usar PostgreSQL ME GUSTA condiciones La coincidencia de patrones se realiza mediante sintaxis y ejemplos.
describir
La condición LIKE de PostgreSQL permite caracteres comodín en la cláusula WHERE de una declaración SELECT, INSERT, UPDATE o DELETE. Esto le permite realizar coincidencias de patrones.
sintaxis
La sintaxis de las condiciones LIKE en PostgreSQL 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, PostgreSQL asume es escape_character.
Ejemplo: uso del comodín % (comodín de porcentaje)
El primer ejemplo de LIKE de PostgreSQL que veremos implica el uso del comodín % (comodín de porcentaje).
Expliquemos cómo funciona el comodín % en una condición LIKE de PostgreSQL. Queremos encontrar a todos los empleados cuyo nombre comience con “Jo”.
SELECT * FROM employees WHERE first_name LIKE 'Jo%';
También puede usar el comodín % varias veces en la misma cadena. Por ejemplo,
SELECT * FROM employees WHERE first_name LIKE '%od%';
En este ejemplo de condición LIKE de PostgreSQL, buscamos a todos los empleados cuyo nombre contenga los caracteres ‘od’.
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 PostgreSQL. Recuerda que el comodín _ solo busca un carácter.
Por ejemplo:
SELECT first_name, last_name FROM employees WHERE first_name LIKE 'Jas_n';
Este ejemplo de una condición LIKE de PostgreSQL devolverá todos los proveedores cuyo nombre de proveedor tenga 5 caracteres, donde los primeros tres caracteres son “Jas” y el último carácter es “n”. Por ejemplo, podría devolver empleados con los nombres “Jasan”, “Jasen”, “Jasin”, “Jason”, etc.
Aquí hay otro ejemplo:
SELECT * FROM employees WHERE employee_number LIKE '98765_';
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 el número de empleado como:
987650, 987651, 987652, 987653, 987654, 987655, 987656, 987657, 987658, 987659
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 PostgreSQL para buscar empleados con last_name No Comienza con “J”.
Por ejemplo:
SELECT first_name, last_name FROM employees WHERE last_name NOT LIKE 'J%';
Al colocar el operador NOT delante de la condición LIKE de PostgreSQL, puede recuperar a todos los empleados cuyo apellido sea No Comienza con “J”.
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 PostgreSQL.
Suponga que desea buscar % o _ caracteres en una condición LIKE de PostgreSQL. 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 employees WHERE last_name LIKE 'G%';
Dado que no especificamos un carácter de escape, PostgreSQL asume que “” es el carácter de escape. PostgreSQL luego asume que el carácter de escape es “”, lo que hace que PostgreSQL trate el carácter % como un literal en lugar de un comodín. Esta declaración devolverá todos los empleados con un last_name de G%.
Podemos anular los caracteres de escape predeterminados en PostgreSQL proporcionando el modificador ESCAPE de la siguiente manera:
SELECT * FROM employees WHERE last_name LIKE 'G!%' ESCAPE '!';
Este ejemplo de condición LIKE de PostgreSQL identifica el carácter ! como un carácter de escape. ¡Esta! Los caracteres de escape harán que PostgreSQL trate el carácter % como un literal. Por lo tanto, esta declaración también devolverá todos los empleados cuyo apellido sea G%.
Aquí hay otro ejemplo más complejo del uso de caracteres de escape en condiciones LIKE de PostgreSQL.
SELECT * FROM employees WHERE last_name LIKE 'M%%';
Este ejemplo de una condición LIKE de PostgreSQL devuelve todos los empleados cuyo apellido comienza con M y termina con %. Por ejemplo, devolverá un valor como “Mathison%”. Dado que no especificamos un carácter de escape en la condición LIKE, PostgreSQL asumió que el carácter de escape era “”, lo que provocó que PostgreSQL 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 employees WHERE last_name LIKE 'M%!%' ESCAPE '!';
Este ejemplo de condición LIKE de PostgreSQL devuelve todos los empleados cuyo apellido comienza con M y termina con el % literal. Por ejemplo, devolverá un valor como “Mathison%”.
También puede usar caracteres de escape con el carácter _ en condiciones LIKE de PostgreSQL.
Por ejemplo:
SELECT * FROM employees WHERE last_name LIKE 'M%_';
Además, dado que no se proporciona ningún modificador ESCAPE, PostgreSQL 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 empleados cuyo apellido comienza con M y termina con _. Por ejemplo, devolverá un valor como “Mathison_”.