- Catégories :
Fonctions de chaîne et fonctions binaires (Correspondance/Comparaison)
LIKE ALL¶
Effectue une comparaison entre majuscules et minuscules pour comparer une chaîne à un ou plusieurs modèles spécifiés. Utilisez cette fonction dans une clause WHERE pour filtrer les correspondances.
Astuce
Vous pouvez utiliser le service d’optimisation de recherche pour améliorer les performances des requêtes qui appellent cette fonction. Pour plus de détails, voir Service d’optimisation de la recherche.
- Voir aussi :
Syntaxe¶
<subject> LIKE ALL (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
Arguments¶
Obligatoire :
subject
La chaîne à comparer au(x) modèle(s).
pattern#
Le ou les modèles auxquels la chaîne doit être comparée. Vous devez spécifier au moins un modèle.
Facultatif :
escape_char
Caractère(s) inséré(s) devant un caractère générique pour indiquer que le caractère générique doit être interprété comme un caractère standard et non comme un caractère générique.
Renvoie¶
Renvoie un BOOLEAN ou un NULL. La valeur est TRUE s’il y a une correspondance. Sinon, renvoie FALSE. Renvoie NULL si l’un des arguments est NULL.
Notes sur l’utilisation¶
Pour inclure des guillemets simples ou d’autres caractères spéciaux dans la correspondance de modèles, vous pouvez utiliser une séquence d’échappement de barre oblique inverse.
NULL ne correspond pas à NULL. En d’autres termes, si le sujet est NULL et l’un des motifs est NULL, cela ne sera pas considéré comme une correspondance.
Vous pouvez utiliser l’opérateur logique NOT avant
subject
pour effectuer une comparaison sensible à la casse qui renvoie TRUE s’il ne correspond à aucun des modèles spécifiés.Les caractères génériques SQL sont pris en charge dans le
pattern
:Un trait de soulignement (
_
) correspond à n’importe quel caractère.Un signe de pourcentage (
%
) correspond à toute séquence de zéro caractère ou plus.
Les caractères génériques du
pattern
incluent les caractères de nouvelle ligne (n
) danssubject
comme des correspondances.Le modèle est considéré comme une correspondance s’il correspond à toute la chaîne d’entrée (sujet). Pour faire correspondre une séquence n’importe où dans une chaîne, commencez et terminez le motif par
%
(par exemple,%something%
).
Si la fonction est utilisée avec une sous-requête, celle-ci doit renvoyer une seule ligne.
Par exemple, les éléments suivants doivent être utilisés uniquement si la sous-requête renvoie une seule ligne :
SELECT ... WHERE x LIKE ALL (SELECT ...)
Détails du classement¶
Seules les spécifications de classement upper
, lower
, et trim
sont prises en charge. Les combinaisons avec upper
, lower
, et trim
sont également prises en charge (par exemple, upper-trim
et lower-trim
), à l’exception des combinaisons locales (par exemple, en-upper
).
Exemples¶
Créer une table contenant des chaînes :
CREATE OR REPLACE TABLE like_all_example(name VARCHAR(20));
INSERT INTO like_all_example VALUES
('John Dddoe'),
('Joe Doe'),
('John_do%wn'),
('Joe down'),
('Tom Doe'),
('Tim down'),
(null);
Cette requête montre comment utiliser des modèles avec des caractères génériques (%
) pour rechercher des correspondances :
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%Jo%oe%','J%e')
ORDER BY name;
+-------------+
| NAME |
|-------------|
| Joe Doe |
| John Dddoe |
+-------------+
Cette requête montre comment tous les modèles doivent correspondre pour un résultat réussi :
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%Jo%oe%','J%n')
ORDER BY name;
+------+
| NAME |
|------|
+------+
Cette requête montre comment utiliser un caractère d’échappement pour indiquer que les caractères qui sont généralement des caractères génériques (_
%
) doivent être traités comme des littéraux.
SELECT *
FROM like_all_example
WHERE name LIKE ALL ('%J%h%^_do%', 'J%^%wn') ESCAPE '^'
ORDER BY name;
+------------+
| NAME |
|------------|
| John_do%wn |
+------------+