L’opérateur LIKE est utilisé dans la clause WHERE des requêtes SQL. Ce mot-clé permet d’effectuer une recherche sur un modèle particulier. Il est par exemple possible de rechercher les enregistrements dont la valeur d’une colonne commence par telle ou telle lettre. Les modèles de recherches sont multiple.
Syntaxe
La syntaxe à utiliser pour utiliser l’opérateur LIKE est la suivante :
SELECT * FROM table WHERE colonne LIKE modele
Dans cet exemple le “modèle” n’a pas été défini, mais il ressemble très généralement à l’un des exemples suivants:
- LIKE ‘%a’ : le caractère “%” est un caractère joker qui remplace tous les autres caractères. Ainsi, ce modèle permet de rechercher toutes les chaines de caractère qui se termine par un “a”.
- LIKE ‘a%’ : ce modèle permet de rechercher toutes les lignes de “colonne” qui commence par un “a”.
- LIKE ‘%a%’ : ce modèle est utilisé pour rechercher tous les enregistrement qui utilisent le caractère “a”.
- LIKE ‘pa%on’ : ce modèle permet de rechercher les chaines qui commence par “pa” et qui se terminent par “on”, comme “pantalon” ou “pardon”.
- LIKE ‘a_c’ : peu utilisé, le caractère “_” (underscore) peut être remplacé par n’importe quel caractère, mais un seul caractère uniquement (alors que le symbole pourcentage “%” peut être remplacé par un nombre incalculable de caractères . Ainsi, ce modèle permet de retourner les lignes “aac”, “abc” ou même “azc”.
Exemple
Imaginons une table “client” qui contient les enregistrement d’utilisateurs :
id | nom | ville |
---|---|---|
1 | Léon | Lyon |
2 | Odette | Nice |
3 | Vivien | Nantes |
4 | Etienne | Lille |
Obtenir les résultats qui commencent par “N”
Si l’ont souhaite obtenir uniquement les clients des villes qui commencent par un “N”, il est possible d’utiliser la requête suivante:
SELECT * FROM client WHERE ville LIKE 'N%'
Avec cette requête, seul les enregistrements suivants seront retournés:
id | nom | ville |
---|---|---|
2 | Odette | Nice |
3 | Vivien | Nantes |
Obtenir les résultats terminent par “e”
Requête :
SELECT * FROM client WHERE ville LIKE '%e'
Résultat :
id | nom | ville |
---|---|---|
2 | Odette | Nice |
4 | Etienne | Lille |