Requête SQL

Fermé
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 - 7 oct. 2014 à 16:04
jee pee Messages postés 41198 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 5 mai 2025 - 7 oct. 2014 à 17:58
Bonjour, supposons que dans une base de données MySQL, j'ai la table X :
"1" : "x = 0"
"2" : "x=1"
"3" : "x=2"
Donc trois éléments, l'un est égal à 1, l'autre 2 et le dernier 3.
Si je fais la requête :
SELECT * FROM X WHERE x = 0 AND x = 4
(Bien sûr la requête est mal formulée ici, je saurais la formuler comme il faut, mais c'est une question théorique ici !),
est-ce que ça doit me renvoyer quelque chose ?
Parce que la valeur 0 est bien dans le BDD, mais pas 4. Alors est-ce que le AND fais que si les deux conditions ne sont pas vérifiées, la requête ne renvoie rien ?
Merci d'avance pour vos réponses !

2 réponses

jee pee Messages postés 41198 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 5 mai 2025 9 613
Modifié par jee pee le 7/10/2014 à 16:15
Bonjour,

Là ça ne renvoie rien car tu cherches une ligne où x est égal à O ET à 4 donc impossible.

Il faut
WHERE x = 0 OR x = 4 


Ce n'est bien sur pas la requête finale si le champ contient "x = 0" il faudra
WHERE x = "x = 0" OR x = "x = 4" 
et encore car "x = 0" ce n'est pas la même chose que "x=0"

cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
1
parousky Messages postés 325 Date d'inscription mardi 11 septembre 2012 Statut Membre Dernière intervention 20 février 2022 6
7 oct. 2014 à 17:51
Merci pour ta réponse.
Et si je veux que ça ne me renvoie rien si 0 et 4 sont dans la table. Si je fais
WHERE x=0 OR x=4
ça me renverra la ligne où x = 0. Quel est la commande pour que ça ne me renvoie rien ?
Merci d'avance !
0
jee pee Messages postés 41198 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 5 mai 2025 9 613
7 oct. 2014 à 17:58
Pour que ça ne renvoie rien, ne pas lancer de requête ;-)

La question n'est pas claire.

SELECT * FROM X WHERE 'A' = 'B'
ne renvoie rien.

SI le test devait dire différent de 0 cela renvoie les lignes 1 et 2
0

Discussions similaires