Resumo :neste tutorial, você aprenderá a consultar dados com base na correspondência de padrões usando SQLite
LIKE operador. Introdução ao SQLite LIKE operador
Às vezes, você não sabe exatamente a palavra-chave completa que deseja consultar. Por exemplo, você pode saber que sua música favorita contém a palavra
elevator mas você não sabe exatamente o nome. Para consultar dados com base em informações parciais, você usa o
LIKE operador no WHERE cláusula do SELECT declaração da seguinte forma:SELECT
column_list
FROM
table_name
WHERE
column_1 LIKE pattern;Code language: SQL (Structured Query Language) (sql) Observe que você também pode usar o
LIKE operador no WHERE cláusula de outras instruções como a DELETE e UPDATE . SQLite fornece dois curingas para construir padrões. Eles são o sinal de porcentagem
% e sublinhar _ :- O sinal de porcentagem
%curinga corresponde a qualquer sequência de zero ou mais caracteres. - O sublinhado
_curinga corresponde a qualquer caractere único.
O sinal de porcentagem % exemplos de curingas
O
s% padrão que usa o caractere curinga do sinal de porcentagem ( % ) corresponde a qualquer string que comece com s por exemplo, son e so . O
%er padrão corresponde a qualquer string que termine com er como peter , clever , etc E o
%per% padrão corresponde a qualquer string que contenha per como percent e peeper . O sublinhado _ exemplos de curingas
O
h_nt padrão corresponde a hunt , hint , etc. O __pple padrão corresponde a topple , supple , tipple , etc Observe que SQLite
LIKE operador não diferencia maiúsculas de minúsculas. Significa "A" LIKE "a" é verdade. No entanto, para caracteres Unicode que não estão nos intervalos ASCII, o
LIKE operador diferencia maiúsculas de minúsculas, por exemplo, "Ä" LIKE "ä" é falso. Caso você queira fazer
LIKE operador funciona com distinção entre maiúsculas e minúsculas, você precisa usar o seguinte PRAGMA:PRAGMA case_sensitive_like = true;Code language: SQL (Structured Query Language) (sql) SQLite LIKE exemplos
Usaremos a tabela
tracks no banco de dados de exemplo para a demonstração.
Para encontrar as faixas cujos nomes começam com
Wild string literal, você usa o sinal de porcentagem % curinga no final do padrão. SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE 'Wild%'Code language: SQL (Structured Query Language) (sql) Tente
Para encontrar as faixas cujos nomes terminam com
Wild palavra, você usa % curinga no início do padrão. SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild'Code language: SQL (Structured Query Language) (sql) Tente
Para encontrar as faixas cujos nomes contêm o
Wild string literal, você usa % curinga no início e no final do padrão:SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild%';Code language: SQL (Structured Query Language) (sql) Tente
A seguinte instrução encontra as faixas cujos nomes contêm:zero ou mais caracteres
(% ), seguido por Br , seguido por um caractere ( _ ), seguido por wn , e seguido por zero ou mais caracteres ( % ). SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Br_wn%';Code language: SQL (Structured Query Language) (sql) Tente
SQLite LIKE com ESCAPE cláusula
Se o padrão que você deseja corresponder contiver
% ou _ , você deve usar um caractere de escape em um ESCAPE opcional cláusula da seguinte forma:column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql) Quando você especifica o
ESCAPE cláusula, a LIKE operador avaliará a expression que segue o ESCAPE palavra-chave para uma string que consiste em um único caractere ou um caractere de escape. Então você pode usar este caractere de escape no padrão para incluir o sinal de porcentagem literal (%) ou sublinhado (
_ ). O LIKE operador avalia o sinal de porcentagem (% ) ou sublinhado (_ ) que segue o caractere de escape como uma string literal, não como um caractere curinga. Suponha que você queira combinar a string
10% em uma coluna de uma tabela. No entanto, o SQLite interpreta o símbolo de porcentagem % como o caractere curinga. Portanto, você precisa escapar deste símbolo de porcentagem % usando um caractere de escape:column_1 LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql) Nesta expressão, o
LIKE O operador interpreta o primeiro % e o último % sinais de porcentagem como curingas e o segundo sinal de porcentagem como um símbolo literal de porcentagem. Observe que você pode usar outros caracteres como caractere de escape, por exemplo, /, @, $.
Considere o seguinte exemplo:
Primeiro, crie uma tabela
t que tem uma coluna:CREATE TABLE t(
c TEXT
);Code language: SQL (Structured Query Language) (sql) Em seguida, insira algumas linhas na tabela
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) Em seguida, consulte os dados do
t tabela: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) Quarto, tente encontrar a linha cujo valor no
c coluna contém os 10% seqüência literal:SELECT c
FROM t
WHERE c LIKE '%10%%';Code language: SQL (Structured Query Language) (sql) No entanto, ele retorna linhas cujos valores na coluna c contêm 10:
c
------------------
10% increase
10 times decrease
100% vs. last year Quinto, para obter o resultado correto, você usa o
ESCAPE cláusula conforme mostrado na consulta a seguir:SELECT c
FROM t
WHERE c LIKE '%10\%%' ESCAPE '\';Code language: SQL (Structured Query Language) (sql) Aqui está o conjunto de resultados:
c
------------
10% increaseCode language: Shell Session (shell) Neste tutorial, você aprendeu como usar SQLite
LIKE operador para consultar dados com base na correspondência de padrões usando dois caracteres curinga sinal de porcentagem (% ) e sublinhado (_ ).