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

Requêtes MySQL Discussion :

Erreur de syntaxe


Sujet :

Requêtes MySQL

  1. #1
    Membre à l'essai
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Juillet 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 17
    Points : 19
    Points
    19
    Par défaut Erreur de syntaxe
    Bonjour,

    j'ai un petit soucie si vous pouvez m'aider.

    j'ai ce code qui renvoi 0 ligne affectée.
    avec and id_product != 13 le code ne fonctionne pas sans tout fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE ps_product 
    SET active = 0 WHERE id_product IN (SELECT id_product FROM ps_product_shop 
    WHERE (price is null or price = "" and id_product != 13))
    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Citation Envoyé par bimbo9991 Voir le message
    avec and id_product != 13 le code ne fonctionne pas sans tout fonctionne.
    Qu'entends-tu par là ?
    Une erreur d'exécution : Quel est le message retourné par le SGBD ?
    Un résultat erroné : Qu'est-ce qui était attendu ? Qu'est-ce qui est retourné ?

    PS : Ton problème n'est peut être qu'une question de précédence des opérateurs...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Juillet 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    je fait les testes directement via phpmyadmin
    logiquement il doit désactiver tout les produits dont le price est vide sauf le produit avec id_product 13
    mais il ne fait rien

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    C'est donc la sous-requête SELECT id_product FROM ps_product_shop WHERE (price is null or price = "" and id_product != 13) qui te pose un problème.
    C'est donc celle-ci qu'il faut corriger.

    1. Les parenthèses autour de l'expression price is null or price = "" and id_product != 13 sont inutiles.
    2. Par l'application des règles de précédence des opérateurs, cette expression est évaluée comme price is null or (price = "" and id_product != 13)

    Il faut peut-être placer des parenthèses utiles : (price is null or price = "") and id_product != 13.

    il ne faut pas hésiter à mettre en forme (indentation, sauts de ligne) la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    UPDATE  ps_product 
    SET     active = 0 
    WHERE   id_product IN 
            (   SELECT  id_product
                FROM    ps_product_shop 
                WHERE   (   price   IS NULL 
                        OR  price   = ''
                        )
                    AND id_product != 13
            )
    Ce qui met en évidence que la requête peut aussi s'écrire ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UPDATE  ps_product  pdt
    SET     pdt.active = 0 
    WHERE   pdt.id_product
            (   SELECT  psh.id_product
                FROM    ps_product_shop psh
                WHERE   psh.price   IS NULL 
                    OR  psh.price   = ''
            )
        AND pdt.id_product != 13
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre à l'essai
    Femme Profil pro
    Auditeur informatique
    Inscrit en
    Juillet 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2019
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    1000 fois merci ça fonctionne impeccable, merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

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