Résumé :dans ce didacticiel, vous apprendrez à interroger des données basées sur la correspondance de modèles à l'aide de SQLite LIKE
opérateur.
Introduction à SQLite LIKE
opérateur
Parfois, vous ne connaissez pas exactement le mot-clé complet que vous souhaitez interroger. Par exemple, vous savez peut-être que votre chanson préférée contient le mot elevator
mais vous ne connaissez pas exactement le nom.
Pour interroger des données basées sur des informations partielles, vous utilisez le LIKE
opérateur dans le WHERE
clause du SELECT
déclaration comme suit :
SELECT
column_list
FROM
table_name
WHERE
column_1 LIKE pattern;
Code language: SQL (Structured Query Language) (sql)
Notez que vous pouvez également utiliser le LIKE
opérateur dans le WHERE
clause d'autres instructions telles que DELETE
et UPDATE
.
SQLite fournit deux caractères génériques pour la construction de modèles. Ils sont le signe pourcentage s%
et soulignez _
:
- Le signe pourcentage
s%
le caractère générique correspond à n'importe quelle séquence de zéro ou plusieurs caractères. - Le trait de soulignement
_
le caractère générique correspond à n'importe quel caractère unique.
Le signe pourcentage s%
exemples de caractères génériques
Les s%
modèle qui utilise le caractère générique du signe pourcentage ( s%
) correspond à toute chaîne commençant par s
par exemple,son
et so
.
Le %er
pattern correspond à n'importe quelle chaîne qui se termine par er
comme peter
, clever
, etc.
Et le %per%
le motif correspond à toute chaîne contenant per
comme percent
et peeper
.
Le trait de soulignement _
exemples de caractères génériques
Le h_nt
le motif correspond à hunt
, hint
, etc. Le __pple
le motif correspond à topple
, supple
, tipple
, etc.
Notez que SQLite LIKE
L'opérateur est insensible à la casse. Cela signifie "A" LIKE "a"
est vrai.
Cependant, pour les caractères Unicode qui ne sont pas dans les plages ASCII, le LIKE
l'opérateur est sensible à la casse, par exemple, "Ä" LIKE "ä"
c'est faux.
Au cas où vous voudriez faire LIKE
fonctionne de manière sensible à la casse, vous devez utiliser le PRAGMA suivant :
PRAGMA case_sensitive_like = true;
Code language: SQL (Structured Query Language) (sql)
SQLite LIKE
exemples
Nous utiliserons la table tracks
dans l'exemple de base de données pour la démonstration.
Pour trouver les pistes dont le nom commence par le Wild
chaîne littérale, vous utilisez le signe pourcentage s%
caractère générique à la fin du modèle.
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE 'Wild%'
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Pour trouver les pistes dont le nom se termine par Wild
mot, vous utilisez s%
caractère générique au début du modèle.
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild'
Code language: SQL (Structured Query Language) (sql)
Essayez-le
Pour trouver les pistes dont les noms contiennent le Wild
chaîne littérale, vous utilisez s%
caractère générique au début et à la fin du motif :
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild%';
Code language: SQL (Structured Query Language) (sql)
Essayez-le
L'instruction suivante trouve les pistes dont les noms contiennent :zéro ou plusieurs caractères (%
), suivi de Br
, suivi d'un caractère ( _
), suivi de wn
, suivi de zéro caractère ou plus ( s%
).
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Br_wn%';
Code language: SQL (Structured Query Language) (sql)
Essayez-le
SQLite LIKE
avec ESCAPE
clause
Si le modèle que vous souhaitez faire correspondre contient s%
ou _
, vous devez utiliser un caractère d'échappement dans un ESCAPE
facultatif clause comme suit :
column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql)
Lorsque vous spécifiez le ESCAPE
clause, le LIKE
l'opérateur évaluera l'expression
qui suit le ESCAPE
mot-clé à une chaîne composée d'un seul caractère ou d'un caractère d'échappement.
Ensuite, vous pouvez utiliser ce caractère d'échappement dans le modèle pour inclure un signe de pourcentage littéral (%) ou un trait de soulignement (_
). Le LIKE
l'opérateur évalue le signe pourcentage (s%
) ou trait de soulignement (_
) qui suit le caractère d'échappement sous forme de chaîne littérale, et non de caractère générique.
Supposons que vous souhaitiez faire correspondre la chaîne 10%
dans une colonne d'un tableau. Cependant, SQLite interprète le symbole de pourcentage s%
comme caractère générique. Par conséquent, vous devez échapper ce symbole de pourcentage s%
en utilisant un caractère d'échappement :
column_1 LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
Dans cette expression, le LIKE
interprète le premier % et le dernier % comme des caractères génériques et le deuxième comme un pourcentage littéral.
Notez que vous pouvez utiliser d'autres caractères comme caractère d'échappement, par exemple, /, @, $.
Prenons l'exemple suivant :
Commencez par créer une table t
qui a une colonne :
CREATE TABLE t(
c TEXT
);
Code language: SQL (Structured Query Language) (sql)
Ensuite, insérez quelques lignes dans le tableau 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)
Ensuite, interrogez les données du t
tableau :
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)
Quatrièmement, essayez de trouver la ligne dont la valeur dans le c
la colonne contient les 10%
chaîne littérale :
SELECT c
FROM t
WHERE c LIKE '%10%%';
Code language: SQL (Structured Query Language) (sql)
Cependant, il renvoie les lignes dont les valeurs dans la colonne c contiennent 10 :
c
------------------
10% increase
10 times decrease
100% vs. last year
Cinquièmement, pour obtenir le bon résultat, vous utilisez le ESCAPE
clause comme indiqué dans la requête suivante :
SELECT c
FROM t
WHERE c LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
Voici le jeu de résultats :
c
------------
10% increase
Code language: Shell Session (shell)
Dans ce tutoriel, vous avez appris à utiliser SQLite LIKE
opérateur pour interroger les données en fonction de la correspondance de modèle à l'aide de deux caractères génériques signe pourcentage (s%
) et trait de soulignement (_
).