SQL Wildcards

Un caractère « wildcard » est utilisé pour se substituer à n’importe quel autre caractère, au sein d’une chaîne de caractère. Ces caractères wildcards sont utilisés dans l’opérateur « LIKE« . Voici les 2 exemples de caractères wildcards :

  • % : le symbole pourcentage représente zéro, un ou plusieurs caractères joker.
  • _ : le symbole underscore représente un seul caractère joker.

A noter : cette page explique l’usage de ces 2 caractères jokers, toutefois il ne faut pas confondre cette page avec le terme « wildcard » qui désigne l’astérisque utilisé dans une requête de lecture, qui désigne toutes les colonnes (exemple : SELECT * FROM table). Cette page d’explication n’évoquera d’explication concernant cet astérisque.

Syntaxe

Requête SQL pour chercher les enregistrements pour lesquels la colonne « nom_de_colonne » débute par la lettre « a » :

SELECT *
FROM table
WHERE nom_de_colonne LIKE 'a%'

Requête SQL cherchant les enregistrements terminant par la lettre « a » :

[...] WHERE colonne LIKE '%a'

Requête SQL cherchant les enregistrements qui possède la lettre « a » :

[...] WHERE colonne LIKE '%a%'

Requête SQL cherchant les enregistrements qui possède la lettre « a » en 2ème caractère :

[...] WHERE colonne LIKE '_a%'

Requête SQL cherchant les enregistrements qui débute par « a » et se termine par z :

[...] WHERE colonne LIKE 'a%z'

Exemple

Prenons l’exemple d’une table contenant la liste des utilisateurs, incluant une colonne avec l’email et une autre avec la date d’inscription.

[table id=162 /]

Usage 1

Il est possible de chercher en une requête SQL la liste des utilisateurs dont l’email se termine par « @example.com », grâce à cette requête :

SELECT *
FROM utilisateur
WHERE email LIKE '%@example.com'

Résultats :

[table id=163 /]

Cet usage est pratique lorsqu’il est nécessaire de chercher tous les utilisateurs qui font parti de la même société.

Usage 2

Une simple requête SQL peut aider à chercher tous les utilisateurs qui se sont inscrit au mois de septembre 2018 grâce à la requête suivante :

SELECT *
FROM utilisateur
WHERE date_inscription LIKE '2018-09-%'

Résultats :

[table id=164 /]

Partager