Correspondance

Utilisation de Pattern Matching (correspondance).
Comment sélectionner des colonnes avec un modèle ?
Comment utiliser les opérateurs LIKE ou NOT LIKE ?

Explication

Des fois, on doit rechercher des tables avec certain critère de correspondance. Avec MySQL on utilise les opérateurs LIKE ou NOT LIKE pour faire la comparaison. Par défaut, avec MySQL les modèles ne respectent pas la casse.
On va prendre un exemple de requête pour afficher les noms des élèves commencent par la lettre M.

mysql> select * from élève where nom like 'm%';
+--------+---------+-------+-----------------+---------+
| étudid | nom | notes | adresse | téléphone |
+--------+---------+-------+-----------------+---------+
| 3 | michael | 75 | edinburgh | 2598234 |
| 8 | mille | 98 | victoria street | 1236547 |
+--------+---------+-------+-----------------+---------+
2 lignes dans le groupe (0.01 sec)

Avec l'exemple de requête qu'on vient de voir, la requête affiche tous les noms qui commencent par la lettre M de la table.
L'exemple de requête suivant va afficher tous les noms qui se terminent par la lettre e de la table.

mysql> select * from élève where nom like '%e';
+--------+-------+-------+------------------+---------+
| étudid | nom | notes | adresse | téléphone |
+--------+-------+-------+------------------+---------+
| 1 | steve | 100 | 5th cross street | 2456987 |
| 5 | anne | 100 | downing street | 2634821 |
| 6 | steve | 75 | downing street | 2874698 |
| 7 | anne | 80 | edinburgh | 2569843 |
| 8 | mille | 98 | victoria street | 1236547 |
+--------+-------+-------+------------------+---------+
5 lignes dans le groupe (0.00 sec)

On peut également afficher les noms avec une lettre particulière. L'exemple de requête suivant affichera les noms avec la lettre "a".

mysql> select * from élève where nom like '%a%';
+--------+---------+-------+-----------------+---------+
| étudid | nom | notes | adresse | téléphone |
+--------+---------+-------+-----------------+---------+
| 2 | david | 98 | welling street | 547896 |
| 3 | michael | 75 | edinburgh | 2598234 |
| 4 | jack | 82 | victoria street | 2436821 |
| 5 | anne | 100 | downing street | 2634821 |
| 7 | anne | 80 | edinburgh | 2569843 |
+--------+---------+-------+-----------------+---------+
5 lignes dans le groupe (0.00 sec)

Supposons qu'on veut chercher les noms avec exactement 5 lettres, on utilise le caractère spécial "_"(tiré bas). La requête suivante affichera les noms à cinq lettres dans la table élève.

mysql> select * from élève where nom like '_____';
+--------+-------+-------+------------------+---------+
| étudid | nom | notes | adresse | téléphone |
+--------+-------+-------+------------------+---------+
| 1 | steve | 100 | 5th cross street | 2456987 |
| 2 | david | 98 | welling street | 547896 |
| 6 | steve | 75 | downing street | 2874698 |
| 8 | mille | 98 | victoria street | 1236547 |
+--------+-------+-------+------------------+---------+
4 lignes dans le groupe (0.00 sec)