Skip to content

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.


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 » (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 ».

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 ~ ou SIMILAR TO pour des recherches plus avancées, mais LIKE reste la méthode la plus simple et la plus portable.


Imaginons une table « client » qui contient les enregistrements 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 »

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 client
WHERE 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 client
WHERE 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 client
WHERE ville LIKE '%o%'

Résultat :

id nom ville
1 Léon Lyon
2 Odette Nice
3 Vivien Nantes

Pour rechercher les villes qui ont exactement 4 lettres et se terminent par « s » :

SELECT *
FROM client
WHERE 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 client
WHERE nom LIKE '%\_%' ESCAPE ''

Ou en MySQL avec un autre caractère d’échappement :

SELECT *
FROM client
WHERE nom LIKE '%#_%' ESCAPE '#'

  • Évitez le % au début du motif : Les recherches avec LIKE utilisant 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.

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