IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

[MYSQL] problème avec colonne = ""


Sujet :

MySQL

  1. #1
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut [MYSQL] problème avec colonne = ""
    salut,
    j'utilise MySQl ,
    j'ai une requette sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select id
    from Table1
    where
    (
         id in (select id 
                 from table2
                     where (type="test" and valeur=""))
    OR
    id in (select id 
                 from table3
                     where (type2="test2" and valeur2=""))
    )
    il me semble que ma requette elle est bonne par contre le resultat de cette requette n'est pas bonne
    je ne sais pas s'il y a un problem avec ="" ds MYSQL ???

    merci de m'aider
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    En SQL, les valeurs textuelles s'entourent d'apostrophes et non de guillemets.
    Les parenthèses autour de la condition de restriction (WHERE) sont inutiles.
    Quel est le résultat attendu ?
    Quel est le résultat obtenu ?

    La requête réelle et une explication du contexte et du besoin nous aiderait à mieux t'aider.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut
    Re,
    merci de votre reponse,

    Citation Envoyé par CinePhil Voir le message
    Quel est le résultat attendu ?
    je veux recuperer les id des enregistrement qui ont un type egale le type que je saisie et la valeur vide et id = id que je saisie ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    select id
    from Table1
    where
    (
         id in (select id 
                 from table2
                     where (table2.id="1" and type='test' and valeur=""))
    And
     
    id in (select id 
                 from table2
                     where (table2.id="2" and type2='test2' and valeur2=""))
    )
    Citation Envoyé par CinePhil Voir le message
    Quel est le résultat obtenu ?
    Citation Envoyé par CinePhil Voir le message
    Les parenthèses autour de la condition de restriction (WHERE) sont inutiles.
    je ne peux pas enlever les parenthese de restriction (WHERE) car j'utilise le WHERE de ZendFramework
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il y a encore des guillemets qui traînent dans ta requête. De plus, si, comme il se devrait, id est de type entier, il ne faut mettre ni guillemets, ni apostrophes.

    Je vois aussi que tu as remplacé le OR par AND.

    Par contre, je n'ai toujours pas la réponse à ma question :
    Quel est le résultat obtenu ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Il y a encore des guillemets qui traînent dans ta requête. De plus, si, comme il se devrait, id est de type entier, il ne faut mettre ni guillemets, ni apostrophes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT id
    FROM Table1
    WHERE
    (
         id IN (SELECT id 
                 FROM table2
                     WHERE (table2.id=1 AND type='test' AND valeur=''))
    AND
     
    id IN (SELECT id 
                 FROM table2
                     WHERE (table2.id=2 AND type2='test2' AND valeur2=''))
    )
    Citation Envoyé par CinePhil Voir le message
    Quel est le résultat obtenu ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MySQL n'a retourné aucun enregistrement
    par contre j'ai des enregistrement ds ma base qui ont corresspondent aux ces criteres
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    valeur et valeur2 sont-elles de type texte ?

    Les lignes qui devraient être retournées ont-elles bien une valeur chaîne vide ?
    Ne sont-elles pas plutôt à NULL ?

    On peut avoir un exemple des données qui sont censées fonctionner ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre régulier Avatar de moukit233
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    240
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 240
    Points : 123
    Points
    123
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Les lignes qui devraient être retournées ont-elles bien une valeur chaîne vide ?
    Ne sont-elles pas plutôt à NULL ?
    oui la colonne valeur accepte aussi NULL
    mais j'utilise une formulaire pour remplire mes tables et si je ne saisi rien dans l'input qui rempli la colonne valeur il ne mettre pas NULL dans ce colonne

    Citation Envoyé par CinePhil Voir le message
    On peut avoir un exemple des données qui sont censées fonctionner ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT id
    FROM Table1
    WHERE
    (
         id IN (SELECT id 
                 FROM table2
                     WHERE (table2.id=1 AND type='test' AND valeur='uneValeur'))
    AND
     
    id IN (SELECT id 
                 FROM table2
                     WHERE (table2.id=2 AND type2='test2' AND valeur2='uneValeur'))
    )
    «En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
    Albert Einstein.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Quand je demande un exemple de données qui fonctionnent, c'est un exemple de données réellement existantes dans les tables !

    D'ailleurs au lieu des abstraits table1, test et unevaleur, on pourrait savoir quel est le besoin réel, la structure réelle des tables en même temps que des données réelles (ou approchantes s'il y a de la confidentialité à préserver) ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. [MySQL] Problème avec le single quote
    Par popcorn dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/12/2008, 23h44
  2. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45
  3. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  4. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44
  5. [EJB2.1 Entity] [CMP] [MySQL] Problème avec clé primaire en auto increment
    Par tery dans le forum Java EE
    Réponses: 6
    Dernier message: 16/07/2004, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo