L’opérateur LIKE en SQL
Sommaire
I. Présentation
L'opérateur LIKE est un opérateur SQL qui permet d'effectuer une comparaison partielle, ce qui peut être une utile pour effectuer une recherche dans la base de données. Pour cela, LIKE s'associe à "%" qui remplace n'importe qu'elle chaîne de caractères et "_" qui remplacement un seul et unique caractère.
II. Exemples
A. Script de la base de données pour les exemples
Si vous souhaitez utiliser la même base de données que moi pour les exemples de ce tutoriel, utilisez le script SQL ci-dessous :
CREATE DATABASE France ; USE France ; CREATE TABLE Villes ( ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT , Vil_Nom CHAR(20) NOT NULL ) ENGINE = InnoDB CHARACTER SET latin1 COLLATE latin1_bin ; INSERT INTO Villes ( Vil_Nom ) VALUES ("Auxerre" ), ("Avranches" ), ("Bordeaux" ), ("Brest" ), ("Caen" ), ("Cannes" ), ("Dijon" ), ("Lille" ), ("Lyon" ), ("Marseille" ), ("Montpellier" ), ("Nancy" ), ("Nantes" ), ("Paris" ), ("Reims" ), ("Rennes" );
Cette base de données contient une seule table qui référence quelques noms de villes Françaises.
B. Exemple n°1 avec LIKE et "%"
Dans ce premier exemple, nous allons rechercher toutes les villes commençant par le caractère "A", il faut donc écrire "A%" pour que % soit égale à n'importe quelle suite de caractères. La requête sera :
SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE 'A%'
Le résultat de cette requête :
C. Exemple n°2 avec LIKE et "%"
Dans ce second exemple, nous allons chercher toutes les villes contenant la la chaîne de caractères "an", il faut donc écrire "%an%" pour que "an" soit précédé et suivi de n'importe qu'elle chaîne de caractères.
SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE '%an%'
Le résultat de cette requête :
On retrouve bien dans chacun des résultats la syllabe "an" précédé et/ou suivi de n'importe qu'elle chaine de caractères.
D. Exemple n°3 avec LIKE et "_"
Désormais, nous allons chercher toutes les villes qui contiennent la chaîne de caractères "aris" mais où on ne connaît pas la première lettre, c'est à dire toutes les villes "_aris" où "_" remplace n'importe qu'elle lettre.
SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE '_aris'
Le résultat de la requête est :
E. Exemple n°4 avec LIKE, "%" et "_"
Dans le dernier exemple de ce tutoriel, nous allons utiliser LIKE et l'associer à "%" et "_" pour trouver toute les villes dont le deuxième caractère est un "i". Il faut donc faire "_i%" étant donné que "_" représentera uniquement le premier caractère.
SELECT Vil_Nom FROM Villes WHERE Vil_Nom LIKE '_i%'
Ce qui retournera comme résultat :
Si vous rencontrez des problèmes dans l'utilisation de l'opérateur LIKE n'hésitez pas à en parler dans le forum ou à laisser un commentaire.