Resumen :en este tutorial, aprenderá cómo consultar datos en función de la coincidencia de patrones usando SQLite LIKE
operador.
Introducción a SQLite LIKE
operador
A veces, no conoce exactamente la palabra clave completa que desea consultar. Por ejemplo, puede saber que su canción favorita contiene la palabra elevator
pero no sabes exactamente el nombre.
Para consultar datos basados en información parcial, utiliza el LIKE
operador en el WHERE
cláusula del SELECT
declaración de la siguiente manera:
SELECT
column_list
FROM
table_name
WHERE
column_1 LIKE pattern;
Code language: SQL (Structured Query Language) (sql)
Tenga en cuenta que también puede usar el LIKE
operador en el WHERE
cláusula de otras sentencias como DELETE
y UPDATE
.
SQLite proporciona dos comodines para construir patrones. Son el signo de porcentaje %
y guión bajo _
:
- El signo de porcentaje
%
el comodín coincide con cualquier secuencia de cero o más caracteres. - El guión bajo
_
el comodín coincide con cualquier carácter único.
El signo de porcentaje %
ejemplos de comodines
El s%
patrón que usa el signo de porcentaje comodín ( %
) coincide con cualquier cadena que comience con s
por ejemplo, son
y so
.
El %er
el patrón coincide con cualquier cadena que termine con er
como peter
, clever
, etc.
Y el %per%
el patrón coincide con cualquier cadena que contenga per
como percent
y peeper
.
El guión bajo _
ejemplos de comodines
El h_nt
el patrón coincide con hunt
, hint
, etc. El __pple
el patrón coincide con topple
, supple
, tipple
, etc.
Tenga en cuenta que SQLite LIKE
El operador no distingue entre mayúsculas y minúsculas. Significa "A" LIKE "a"
es verdad.
Sin embargo, para los caracteres Unicode que no están en los rangos ASCII, LIKE
el operador distingue entre mayúsculas y minúsculas, por ejemplo, "Ä" LIKE "ä"
Es falso.
En caso de que quieras hacer LIKE
El operador distingue entre mayúsculas y minúsculas, debe usar el siguiente PRAGMA:
PRAGMA case_sensitive_like = true;
Code language: SQL (Structured Query Language) (sql)
SQLite LIKE
ejemplos
Usaremos la tabla tracks
en la base de datos de muestra para la demostración.
Para encontrar las pistas cuyos nombres comienzan con Wild
cadena literal, usa el signo de porcentaje %
comodín al final del patrón.
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE 'Wild%'
Code language: SQL (Structured Query Language) (sql)
Pruébalo
Para encontrar las pistas cuyos nombres terminan con Wild
palabra, usas %
comodín al principio del patrón.
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild'
Code language: SQL (Structured Query Language) (sql)
Pruébalo
Para encontrar las pistas cuyos nombres contienen el Wild
cadena literal, usa %
comodín al principio y al final del patrón:
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild%';
Code language: SQL (Structured Query Language) (sql)
Pruébalo
La siguiente declaración encuentra las pistas cuyos nombres contienen:cero o más caracteres (%
), seguido de Br
, seguido de un carácter ( _
), seguido de wn
, y seguido de cero o más caracteres ( %
).
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Br_wn%';
Code language: SQL (Structured Query Language) (sql)
Pruébalo
SQLite LIKE
con ESCAPE
cláusula
Si el patrón que desea hacer coincidir contiene %
o _
, debe usar un carácter de escape en un ESCAPE
opcional cláusula de la siguiente manera:
column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql)
Cuando especifica el ESCAPE
cláusula, el LIKE
el operador evaluará la expression
que sigue al ESCAPE
palabra clave a una cadena que consta de un solo carácter o un carácter de escape.
Luego puede usar este carácter de escape en el patrón para incluir el signo de porcentaje literal (%) o guión bajo (_
). El LIKE
operador evalúa el signo de porcentaje (%
) o guion bajo (_
) que sigue al carácter de escape como una cadena literal, no como un carácter comodín.
Suponga que desea hacer coincidir la cadena 10%
en una columna de una tabla. Sin embargo, SQLite interpreta el símbolo de porcentaje %
como carácter comodín. Por lo tanto, debe escapar de este símbolo de porcentaje %
usando un carácter de escape:
column_1 LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
En esta expresión, el LIKE
El operador interpreta el primer % y el último % por ciento como comodines y el segundo signo de porcentaje como un símbolo de porcentaje literal.
Tenga en cuenta que puede utilizar otros caracteres como carácter de escape, por ejemplo, /, @, $.
Considere el siguiente ejemplo:
Primero, crea una tabla t
que tiene una columna:
CREATE TABLE t(
c TEXT
);
Code language: SQL (Structured Query Language) (sql)
A continuación, inserte algunas filas en la tabla t
:
INSERT INTO t(c)
VALUES('10% increase'),
('10 times decrease'),
('100% vs. last year'),
('20% increase next year');
Code language: SQL (Structured Query Language) (sql)
Luego, consulta los datos del t
tabla:
SELECT * FROM t;
Code language: SQL (Structured Query Language) (sql)
c
----------------------
10% increase
10 times decrease
100% vs. last year
20% increase next year
Code language: Shell Session (shell)
Cuarto, intente encontrar la fila cuyo valor en el c
columna contiene el 10%
cadena literal:
SELECT c
FROM t
WHERE c LIKE '%10%%';
Code language: SQL (Structured Query Language) (sql)
Sin embargo, devuelve filas cuyos valores en la columna c contienen 10:
c
------------------
10% increase
10 times decrease
100% vs. last year
Quinto, para obtener el resultado correcto, usa el ESCAPE
cláusula como se muestra en la siguiente consulta:
SELECT c
FROM t
WHERE c LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
Aquí está el conjunto de resultados:
c
------------
10% increase
Code language: Shell Session (shell)
En este tutorial, ha aprendido a usar SQLite LIKE
operador para consultar datos en función de la coincidencia de patrones utilizando dos caracteres comodín signo de porcentaje (%
) y guion bajo (_
).