SQL LIKEOpérateurs
L'opérateur LIKE est utilisé pour rechercher un modèle spécifié dans une colonne dans la clause WHERE.
LIKEL'opérateur est un mot-clé en SQL utilisé pourWHEREeffectuer des requêtes approximatives dans la clause. Il permet de sélectionner des données en fonction de la correspondance de motifs, et est généralement utilisé conjointement avec%et_caractères génériques.
Syntaxe SQL LIKE
SELECT column1, column2, ... FROM table_name WHERE column_name LIKE pattern;
Description du paramètre :
- column1, column2, ...: Le ou les noms de champ à sélectionner ; il peut y avoir plusieurs champs. Si aucun nom de champ n'est spécifié, tous les champs seront sélectionnés.
- table_name: Le nom de la table à interroger.
- column: Le nom du champ à rechercher.
- pattern: Le modèle de recherche.
Caractères génériques
%: Correspond à un nombre quelconque de caractères (y compris zéro caractère)._: Correspond à un seul caractère.
Exemples
Supposons que nous ayons une table nommée Products avec les données suivantes :
| ProductID | ProductName | Catégorie |
|---|---|---|
| 1 | iPhone 12 | Électronique |
| 2 | Samsung Galaxy S21 | Électronique |
| 3 | Dell XPS 13 | Électronique |
| 4 | Nike Air Zoom | Chaussures |
| 5 | Adidas Ultraboost | Chaussures |
| 6 | Sony PlayStation 5 | Électronique |
Utilisez%le caractère générique pour trouver tous les produits commençant par "iPhone" :
SELECT ProductName, Category FROM Products WHERE ProductName LIKE 'iPhone%';
Renvoie les données suivantes :
| ProductName | Catégorie |
|---|---|
| iPhone 12 | Électronique |
Utilisez_le caractère générique pour trouver tous les produits dont le nom a "e" comme deuxième caractère :
SELECT ProductName, Category FROM Products WHERE ProductName LIKE '_e%';
Renvoie les données suivantes :
| ProductName | Catégorie |
|---|---|
| Dell XPS 13 | Électronique |
Combinez%et_le caractère générique pour trouver tous les produits dont le nom contient "Zoom" :
SELECT ProductName, Category FROM Products WHERE ProductName LIKE '%Zoom%';
Renvoie les données suivantes :
| ProductName | Catégorie |
|---|---|
| Nike Air Zoom | Chaussures |
Base de données de démonstration
Dans ce tutoriel, nous utiliserons la base de données d'exemple EXAMPLE.
Voici une sélection de la table "Websites" :
mysql> SELECT * FROM Websites; +----+---------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+---------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | Example | http://www.example.com/ | 5000 | USA | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
Exemples de l'opérateur LIKE SQL
L'instruction SQL suivante sélectionne tous les clients dont le nom commence par la lettre "G" :
Exemple
WHERE name LIKE 'G%';
Résultat de sortie d'exécution :
Astuce :Le symbole "%" est utilisé pour définir des caractères génériques (lettres par défaut) avant et après le modèle. Vous en apprendrez plus sur les caractères génériques dans le chapitre suivant.
L'instruction SQL suivante sélectionne tous les clients dont le nom se termine par la lettre "k" :
Exemple
WHERE name LIKE '%k';
Résultat de sortie d'exécution :
L'instruction SQL suivante sélectionne tous les clients dont le nom contient le modèle "oo" :
Exemple
WHERE name LIKE '%oo%';
Résultat de sortie d'exécution :
En utilisant le mot-clé NOT, vous pouvez sélectionner les enregistrements qui ne correspondent pas au modèle.
L'instruction SQL suivante sélectionne tous les clients dont le nom ne contient pas le modèle "oo" :
Exemple
WHERE name NOT LIKE '%oo%';
Résultat de sortie d'exécution :