Requête SQL

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

  1. Modérateur
    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
    1. 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
      1. Modérateur
        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