Catégories :

Fonctions de chaîne et fonctions binaires (Correspondance/Comparaison)

LIKE ANY

Permet l’appariement des chaînes sensibles à la casse sur la base d’une comparaison avec un ou plusieurs motifs.

L’opération est similaire à LIKE. Si la chaîne d’entrée correspond à l’un des modèles, la chaîne d’entrée est renvoyée.

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 :

LIKE

Syntaxe

<subject> LIKE ANY (<pattern1> [, <pattern2> ... ] ) [ ESCAPE <escape_char> ]
Copy

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

Le type de données de la valeur renvoyée est VARCHAR.

Notes sur l’utilisation

  • 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) dans subject 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%).

  • NULL ne correspond pas à NULL. En d’autres termes, si le sujet est NULL et l’un des modèles est NULL, cela ne sera pas considéré comme une correspondance.

Exemples

Créer une table contenant des chaînes :

CREATE OR REPLACE TABLE like_example(subject varchar(20));
INSERT INTO like_example VALUES
    ('John  Dddoe'),
    ('Joe   Doe'),
    ('John_down'),
    ('Joe down'),
    ('Tom   Doe'),
    ('Tim down'),
    (null);
Copy

Cette requête montre comment utiliser des modèles avec des caractères génériques (%) pour rechercher des correspondances :

SELECT * 
  FROM like_example 
  WHERE subject LIKE ANY ('%Jo%oe%','T%e')
  ORDER BY subject;
+-------------+
| SUBJECT     |
|-------------|
| Joe   Doe   |
| John  Dddoe |
| Tom   Doe   |
+-------------+
Copy

Cette requête montre comment utiliser un caractère d’échappement pour indiquer qu’un caractère qui est généralement un caractère générique (_) doit être traité comme un littéral.

SELECT * 
  FROM like_example 
  WHERE subject LIKE ANY ('%J%h%^_do%', 'T%^%e') ESCAPE '^'
  ORDER BY subject;
+-----------+
| SUBJECT   |
|-----------|
| John_down |
+-----------+
Copy