SQL LIKE Opérateur
L'opérateur SQL LIKE
L'opérateur LIKE est utilisé dans une clause WHERE pour rechercher un modèle spécifié dans une colonne.
Il existe deux caractères génériques souvent utilisés en conjonction avec l'opérateur LIKE :
- Le signe de pourcentage
%représente zéro, un ou plusieurs caractères - Le signe de soulignement
_représente un seul caractère
Vous en apprendrez davantage sur les caractères génériques dans le prochain chapitre.
Exemple
Sélectionnez tous les clients qui commencent par la lettre "a":
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';
Try it Yourself »
Syntaxe
SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;
Base de données de démonstration
Vous trouverez ci-dessous une sélection de la table Customers utilisée dans les exemples :
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
|---|---|---|---|---|---|---|
| 1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
| 4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
| 5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Le _ Wildcard
Le caractère générique _ représente un seul caractère.
Il peut s'agir de n'importe quel caractère ou nombre, mais chaque _ représente un, et un seul, caractère.
Exemple
Renvoyer tous les clients d'une ville commençant par « L » suivi d'un caractère générique, puis de « nd » puis de deux caractères génériques :
SELECT * FROM Customers
WHERE city LIKE 'L_nd__';
Try it Yourself »
Le % Wildcard
Le caractère générique % représente n'importe quel nombre de caractères, même zéro caractère.
Exemple
Renvoyer tous les clients d'une ville qui contient la lettre 'L':
SELECT * FROM Customers
WHERE city LIKE '%L%';
Try it Yourself »
Commence par
Pour renvoyer les enregistrements commençant par une lettre ou une phrase spécifique, ajoutez le % à la fin de la lettre ou de la phrase.
Exemple
Renvoyer tous les clients qui commencent par 'La':
SELECT * FROM Customers
WHERE CustomerName LIKE 'La%';
Try it Yourself »
Conseil : vous pouvez également combiner n'importe quel nombre de conditions à l'aide des opérateurs AND ou OR.
Exemple
Renvoyer tous les clients commençant par « a » ou commençant par « b » :
SELECT * FROM Customers
WHERE CustomerName LIKE 'a%' OR CustomerName LIKE 'b%';
Try it Yourself »
Se termine par
Pour renvoyer des enregistrements qui se terminent par une lettre ou une phrase spécifique, ajoutez le % au début de la lettre ou de la phrase.
Exemple
Renvoyer tous les clients qui se terminent par 'a':
SELECT * FROM Customers
WHERE CustomerName LIKE '%a';
Try it Yourself »
Conseil : Vous pouvez également combiner « commence par » et « se termine par » :
Exemple
Renvoyer tous les clients commençant par « b » et se terminant par « s » :
SELECT * FROM Customers
WHERE CustomerName LIKE 'b%s';
Try it Yourself »
Contient
Pour renvoyer des enregistrements contenant une lettre ou une phrase spécifique, ajoutez le % avant et après la lettre ou la phrase.
Exemple
Renvoyer tous les clients qui contiennent la phrase 'or'
SELECT * FROM Customers
WHERE CustomerName LIKE '%or%';
Try it Yourself »
Combiner les caractères génériques
Tout caractère générique, comme % et _ , peut être utilisé en combinaison avec d'autres caractères génériques.
Exemple
Renvoie tous les clients commençant par « a » et comportant au moins 3 caractères :
SELECT * FROM Customers
WHERE CustomerName LIKE 'a__%';
Try it Yourself »
Exemple
Renvoie tous les clients qui ont « r » en deuxième position :
SELECT * FROM Customers
WHERE CustomerName LIKE '_r%';
Try it Yourself »
Sans caractère générique
Si aucun caractère générique n'est spécifié, la phrase doit avoir une correspondance exacte pour renvoyer un résultat.
Exemple
Retour de tous les clients d'Espagne :
SELECT * FROM Customers
WHERE Country LIKE 'Spain';
Try it Yourself »