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 yearCode 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% increaseCode 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 (_ ).