Utilisation de LIKE dans la recherche insensible à la casse

Raymond Peter 30 janvier 2023
  1. Recherche insensible à la casse avec l’opérateur LIKE dans MySQL
  2. Recherche sensible à la casse dans MySQL
  3. Expressions régulières dans MySQL
Utilisation de LIKE dans la recherche insensible à la casse

Cet article tutoriel vous montrera comment utiliser l’opérateur LIKE pour rechercher une colonne. Nous vous montrerons comment l’utiliser correctement pour inclure tous les résultats qui répondent à des critères spécifiques, que les valeurs soient ou non en majuscules ou en minuscules.

Recherche insensible à la casse avec l’opérateur LIKE dans MySQL

Lors de la recherche d’un tableau, l’opérateur LIKE est toujours utilisé après WHERE lors de la recherche d’un tableau.

Ceci est particulièrement utile lorsque vous recherchez un terme dont vous n’êtes pas sûr, tel qu’un préfixe ou un modèle de lettres, ou si vous souhaitez inclure plusieurs instances qui répondent à une condition spécifique.

Après une instruction SELECT, spécifiant la colonne d’une table que vous souhaitez rechercher, ajoutez l’opérateur LIKE suivi des caractères génériques suivants :

  • Le joker % recherchera les valeurs commençant par une lettre placée après la lettre. De même, il recherchera les valeurs qui se terminent par une lettre si le signe % est placé avant la lettre.
  • Le caractère générique de soulignement (_) permet de limiter la recherche à une valeur après l’utilisation du signe %.

Vous pouvez utiliser ce qui précède de différentes manières pour produire des résultats différents. L’exemple ci-dessous montre comment rechercher un terme en utilisant les deux caractères génériques.

 CREATE TABLE car_models (
  brand TEXT NOT NULL,
  model TEXT NOT NULL
);
 
INSERT INTO car_models VALUES ('Toyota', 'Camry');
INSERT INTO car_models VALUES ('toyota', 'Corolla');
INSERT INTO car_models VALUES ('toyota', 'corolla');
INSERT INTO car_models VALUES ('Ford', 'Prefect');
INSERT INTO car_models VALUES ('Ford', 'fiesta');
 
SELECT * FROM car_models WHERE car_models.model LIKE '%cor%'

Ce qui précède renverra uniquement les lignes contenant les lettres cor dans cette séquence. En commençant et finissant par le signe %, la recherche était limitée aux mots dont les lettres étaient dans cet ordre.

| brand |  model  |
|-------|---------|
|toyota | Corolla |
|toyota | corolla |

La recherche a ignoré les majuscules et n’a recherché que les valeurs qui répondaient aux critères. Vous pouvez également exécuter l’instruction suivante, qui renvoie tous les modèles contenant la lettre c.

SELECT * FROM car_models WHERE car_models.model LIKE '%C%'

Production :

| brand |  model  |
|-------|---------|
|Toyota |  Camry  |
|toyota | Corolla |
|toyota | corolla |
|Ford   | Prefect |

Les éléments suivants ont renvoyé tous les modèles avec la lettre c. Cependant, si vous voulez être plus précis, vous pouvez placer le signe % uniquement après la lettre c pour renvoyer les modèles qui commencent par c.

SELECT * FROM car_models WHERE car_models.model LIKE 'C%'

Production :

| brand |  model  |
|-------|---------|
|Toyota |  Camry  |
|toyota | Corolla |
|toyota | corolla |

Recherche sensible à la casse dans MySQL

Si vous souhaitez une recherche sensible à la casse, vous pouvez ajouter BINARY devant l’opérateur LIKE, et la recherche sera sensible à la casse.

SELECT * FROM car_models WHERE car_models.model LIKE BINARY 'c%'

Production :

| brand |  model  |
|-------|---------|
|toyota | corolla |

Tous les modèles commençant par un C majuscule ont été exclus de la recherche.

Expressions régulières dans MySQL

Il vaut la peine d’apprendre à utiliser les expressions régulières pour des recherches plus spécifiques. Ceux-ci incluent plus de caractères spéciaux, comme le signe %, vous permettant d’en faire plus dans une recherche.

Il se compose du signe *, qui permet un scénario dans lequel la valeur qui le suit peut apparaître plusieurs fois ou pas du tout. Le signe +, quant à lui, précise que le caractère suivant doit apparaître au moins une fois.

Les REGEXP et REGEXP_LIKE() peuvent également être utilisés dans MySQL pour suivre des modèles spécifiques.