MySQL WHERE
Dans ce tutoriel nous allons découvrir comment utiliser la clause WHERE dans l’instruction SELECT pour filtrer les lignes de résultats.
La clause WHERE vous permet de spécifier une condition pour les lignes renvoyées par une requête.
Syntaxe:
SELECT colonne1, colonne2, ..., colonne_n FROM tableX WHERE condition;
Exemple – Avec une seule condition
Dans l’exemple suivant, nous avons utilisé la clause WHERE pour filtrer nos résultats à partir de la table clients. L’instruction SELECT ci-dessus renverrait toutes les lignes de la table clients où le nom est « Alex ». Etant donné que * est utilisé dans SELECT, tous les colonnes de la table clients apparaissent dans la sortie.
SELECT * FROM Clients WHERE Nom = 'Alex';
Exemple – Avec la condition AND
La requête suivante utilise l’opérateur AND pour trouver des clients situés à Paris et dont l’age est supérieur à 20:
SELECT * FROM Clients WHERE Adresse = 'Paris' AND Age > 20;
Exemple – Avec la condition OR
Par exemple, pour obtenir les clients situés à Paris ou à Lyon, utilisez l’opérateur OR dans la clause WHERE comme suit:
SELECT * FROM Clients WHERE Adresse = 'Paris' OR Adresse = 'Lyon';
Exemple – Avec la condition AND et OR
L’exemple suivant affricherait tous les clients résidant à Paris et dont le nom est « Alex », ainsi que tous les clients dont l’age est supérieur à 20.
Les parenthèses déterminent l’ordre dans lequel les conditions AND et OR sont évaluées.
SELECT * FROM Clients WHERE ( Adresse = 'Paris' AND Nom = 'Alex' ) OR ( Age > 20 );
Exemple – Jointure de tables
L’exemple suivant utilise la clause WHERE pour joindre plusieurs tables dans une seule instruction SELECT. Cette instruction SELECT affricherait toutes les valeurs(nom du client et numéro de la commande) dans lesquelles il existe un enregistrement(ClientID) correspondant dans les deux tables Clients et Commandes.
SELECT Clients.Nom, Commandes.NumCommande FROM Clients, Commandes WHERE Clients.ClientID = Commandes.ClientID;