Clause WHERE IN

Résolu
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   -  
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'aimerai comprendre la clause IN de SQL.
En fait WHERE IN est un raccourci pour plusieurs conditions OR.
Alors pourquoi si je met "WHERE fonction IN ('Professeur')" ça fonctionne alors qu'il y a qu'une seule condition et si je fait "WHERE fonction = 'Professeur'" j'ai exactement le même résultat.
Pouvez-vous m'expliquer s'ils vous plait, j'ai lu pas mal de sujet mais j'ai pas trop saisie.
Je vous remercie


6 réponses

LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   32
 
oui mais alors pourquoi ca ma renvoie aussi les lignes avec IN
SELECT * FROM listeEtudiants WHERE nom_etudiant IN ('Dupont');
0
Utilisateur anonyme
 
Comment ça ? Je ne comprends pas ce que tu veux dire.

En fait, (dans mon exemple) la clause IN renvoie TOUTES les lignes contenant 'Dupont' et 'Durand' pour nom_etudiant, c'est comme si tu faisais :

SELECT * FROM listeEtudiants WHERE nom_etudiant='Dupont' OR nom_etudiant='Durand';
0
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   32
 
oui mais là dans mon exemple il y a simplement 1 clause WHERE avec IN alors que c'est simplement un égal en fait..
excuse moi j'essaie juste de mettre un peu d'ordre dans ma tête...
0
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   32
 
comme ça
SELECT * FROM listeEtudiants WHERE nom_etudiant IN ('Dupont');
0
Utilisateur anonyme
 
D'accord bein pour faire simple, dans ton cas, il faut juste que tu te dises que ça
SELECT * FROM listeEtudiants WHERE nom_etudiant IN ('Dupont');

est égal à ça
SELECT * FROM listeEtudiants WHERE nom_etudiant='Dupont';
0
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   32
 
D'accord merci je ne comprenais pourquoi la clause WHERE IN est le même chose que WHERE =
Alors que sur un site j'ai vu ça WHERE IN est un raccourci pour plusieurs conditions OR
C'est ce qui m'a perturbé.
Je te remercie
0
Utilisateur anonyme
 
Oui, c'est exactement ça, WHERE IN est bel et bien un raccourci pour plusieurs conditions OR car :

SELECT * FROM listeEtudiants WHERE nom_etudiant='Dupont' OR nom_etudiant='Durand';

est égal à
SELECT * FROM listeEtudiants WHERE nom_etudiant IN ('Dupont','Durand');
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LaChaux78 Messages postés 583 Date d'inscription   Statut Membre Dernière intervention   32
 
Merci
0
Utilisateur anonyme
 
Exemples :
SELECT * FROM listeEtudiants WHERE nom_etudiant='Dupont';

Va te renvoyer toutes les lignes où le nom 'Dupont' est inclus.


SELECT * FROM listeEtudiants WHERE nom_etudiant IN ('Dupont','Durand');

Va te renvoyer toutes les lignes où 'Dupont' ET 'Durand' sont inclus.
-1