Clause WHERE IN [Résolu]

LaChaux78 179 Messages postés lundi 25 juillet 2016Date d'inscription 13 décembre 2017 Dernière intervention - 3 déc. 2017 à 19:58 - Dernière réponse : LaChaux78 179 Messages postés lundi 25 juillet 2016Date d'inscription 13 décembre 2017 Dernière intervention
- 3 déc. 2017 à 21:33
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


Afficher la suite 

9 réponses

Répondre au sujet
LaChaux78 179 Messages postés lundi 25 juillet 2016Date d'inscription 13 décembre 2017 Dernière intervention - 3 déc. 2017 à 20:48
0
Utile
1
oui mais alors pourquoi ca ma renvoie aussi les lignes avec IN
SELECT * FROM listeEtudiants WHERE nom_etudiant IN ('Dupont');
titoineis14270 14 Messages postés samedi 2 décembre 2017Date d'inscription 3 décembre 2017 Dernière intervention - 3 déc. 2017 à 20:51
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';
Commenter la réponse de LaChaux78
LaChaux78 179 Messages postés lundi 25 juillet 2016Date d'inscription 13 décembre 2017 Dernière intervention - 3 déc. 2017 à 20:56
0
Utile
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...
Commenter la réponse de LaChaux78
LaChaux78 179 Messages postés lundi 25 juillet 2016Date d'inscription 13 décembre 2017 Dernière intervention - 3 déc. 2017 à 20:58
0
Utile
1
comme ça
SELECT * FROM listeEtudiants WHERE nom_etudiant IN ('Dupont');
titoineis14270 14 Messages postés samedi 2 décembre 2017Date d'inscription 3 décembre 2017 Dernière intervention - 3 déc. 2017 à 20:59
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';
Commenter la réponse de LaChaux78
LaChaux78 179 Messages postés lundi 25 juillet 2016Date d'inscription 13 décembre 2017 Dernière intervention - 3 déc. 2017 à 21:05
0
Utile
1
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
titoineis14270 14 Messages postés samedi 2 décembre 2017Date d'inscription 3 décembre 2017 Dernière intervention - 3 déc. 2017 à 21:09
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');
Commenter la réponse de LaChaux78
LaChaux78 179 Messages postés lundi 25 juillet 2016Date d'inscription 13 décembre 2017 Dernière intervention - 3 déc. 2017 à 21:33
0
Utile
Merci
Commenter la réponse de LaChaux78
titoineis14270 14 Messages postés samedi 2 décembre 2017Date d'inscription 3 décembre 2017 Dernière intervention - 3 déc. 2017 à 20:26
-1
Utile
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.
Commenter la réponse de titoineis14270