LIKE – Recherche par motif
Bonne lecture et bon apprentissage !
Junior TSAFACK – 08/08/2026
⏱️ Temps de lecture estimé : 5 minutes
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 recherche sont multiples.
Syntaxe
Section titled “Syntaxe”La syntaxe à utiliser pour utiliser l’opérateur LIKE est la suivante :
SELECT * FROM table WHERE colonne LIKE modeleDans cet exemple, le « modèle » (ou motif) 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. Ce modèle permet de rechercher toutes les chaînes de caractères qui se terminent par un « a ».LIKE 'a%': ce modèle permet de rechercher toutes les lignes qui commencent par un « a ».LIKE '%a%': ce modèle est utilisé pour rechercher tous les enregistrements qui contiennent le caractère « a ».LIKE 'pa%on': ce modèle permet de rechercher les chaînes qui commencent par « pa » et qui se terminent par « on » (ex. : « pantalon », « pardon »).LIKE 'a_c': le caractère_(underscore) est remplacé par exactement un seul caractère. Ce modèle retourne des lignes comme « aac », « abc » ou « azc ».
Les jokers disponibles
Section titled “Les jokers disponibles”| Joker | Description |
|---|---|
% |
Remplace zéro, un ou plusieurs caractères (n’importe quel nombre). |
_ |
Remplace exactement un seul caractère. |
💡 Bon à savoir : Dans certains SGBD comme PostgreSQL, il est possible d’utiliser des expressions régulières avec
~ouSIMILAR TOpour des recherches plus avancées, maisLIKEreste la méthode la plus simple et la plus portable.
Exemple concret
Section titled “Exemple concret”Imaginons une table « client » qui contient les enregistrements d’utilisateurs :
Table « client »
Section titled “Table « client »”| id | nom | ville |
|---|---|---|
| 1 | Léon | Lyon |
| 2 | Odette | Nice |
| 3 | Vivien | Nantes |
| 4 | Etienne | Lille |
Obtenir les résultats qui commencent par « N »
Section titled “Obtenir les résultats qui commencent par « N »”Si l’on souhaite obtenir uniquement les clients des villes qui commencent par la lettre « N », il est possible d’utiliser la requête suivante :
SELECT *FROM clientWHERE ville LIKE 'N%'Résultat :
| id | nom | ville |
|---|---|---|
| 2 | Odette | Nice |
| 3 | Vivien | Nantes |
Obtenir les résultats qui se terminent par « e »
Section titled “Obtenir les résultats qui se terminent par « e »”SELECT *FROM clientWHERE ville LIKE '%e'Résultat :
| id | nom | ville |
|---|---|---|
| 2 | Odette | Nice |
| 4 | Etienne | Lille |
Obtenir les résultats qui contiennent la lettre « o »
Section titled “Obtenir les résultats qui contiennent la lettre « o »”SELECT *FROM clientWHERE ville LIKE '%o%'Résultat :
| id | nom | ville |
|---|---|---|
| 1 | Léon | Lyon |
| 2 | Odette | Nice |
| 3 | Vivien | Nantes |
Utiliser le joker _ (underscore)
Section titled “Utiliser le joker _ (underscore)”Pour rechercher les villes qui ont exactement 4 lettres et se terminent par « s » :
SELECT *FROM clientWHERE ville LIKE '___s' -- 3 underscores + 's'(Avec la table actuelle, aucune correspondance n’est trouvée, mais avec une ville comme « Lens » cela fonctionnerait).
Cas particulier : rechercher un caractère joker littéral
Section titled “Cas particulier : rechercher un caractère joker littéral”Si vous souhaitez rechercher un pourcentage % ou un underscore _ littéral (et non comme joker), il faut les échapper avec le caractère d’échappement (par défaut \ dans MySQL, ou en utilisant ESCAPE).
Exemple pour rechercher les noms qui contiennent un underscore littéral :
SELECT *FROM clientWHERE nom LIKE '%\_%' ESCAPE ''Ou en MySQL avec un autre caractère d’échappement :
SELECT *FROM clientWHERE nom LIKE '%#_%' ESCAPE '#'Performances et bonnes pratiques
Section titled “Performances et bonnes pratiques”- Évitez le
%au début du motif : Les recherches avecLIKEutilisant un%en début de motif ('%a'ou'%a%') ne peuvent généralement pas utiliser les index, ce qui peut ralentir considérablement les requêtes sur de grandes tables. - Privilégiez les motifs commençant par une constante : Les motifs comme
'a%'peuvent exploiter les index B-tree standard. - Recherche plein texte : Pour des recherches textuelles avancées, privilégiez les fonctionnalités de recherche plein texte (Full-Text Search) de votre SGBD (MySQL, PostgreSQL, etc.), nettement plus performantes.
Prochain chapitre
Section titled “Prochain chapitre”Vous savez désormais comment effectuer des recherches par motif avec LIKE. Mais comment gérer les valeurs manquantes ou inconnues dans vos données ?
👉 Chapitre 10 : IS NULL / IS NOT NULL – Gérer les valeurs manquantes
Bonne continuation !
Junior TSAFACK – 08/08/2026