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

Langage SQL Discussion :

UPDATE (code correct ?)


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Par défaut UPDATE (code correct ?)
    Une table FEMME.
    Champs : id|nom|prénom|célibataire|mariée|pacsée|ouverture....

    pour toutes les lignes, si célibataire = OUI et mariée = NON et pacsée = NON alors je mets à jour le champs ouverture à OUI.

    UPDATE FEMME
    SET ouverture = 'OUI'
    WHERE id = (SELECT id
    FROM FEMME f
    WHERE f.célibataire = 'OUI'
    AND f.mariée = 'NON'
    AND f.pacsée = 'NON')

    Je vais réellement parcourir toute la table FEMME, lire chaque ligne et UPDATER le champs correspondant ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 136
    Par défaut
    Ta requête n'aurait fonctionné que s'il y avait une seule ligne correspondant à la sélection.
    Il aurait fallu écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...WHERE id IN (SELECT id ...
    Mais pourquoi faire compliqué quand on peut faire simple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE FEMME
     SET ouverture = 'OUI'
    WHERE célibataire = 'OUI'
      AND mariée = 'NON'
      AND pacsée = 'NON'
    ;
    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 averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Par défaut
    Citation Envoyé par al1_24
    Mais pourquoi faire compliqué quand on peut faire simple ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE FEMME
     SET ouverture = 'OUI'
    WHERE célibataire = 'OUI'
      AND mariée = 'NON'
      AND pacsée = 'NON'
    ;
    parceque ! (j'apprends)
    Ton UPDATE va metter à jour tous les lignes correspondante ?
    Comment fonctionne l'UPDATE, il lit toute la table et execute en fonction des critères de tri ?

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 136
    Par défaut
    Citation Envoyé par philuciole
    Comment fonctionne l'UPDATE, il lit toute la table et execute en fonction des critères de tri ?
    Quels critères de tri ?
    La commande UPDATE n'accepte que des critères de sélection.
    Le tri, ça sert à ordonner les résultats d'une requête, dans la clause ORDER BY.
    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
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    UPDATE FEMME
     SET ouverture = 'OUI'
    WHERE célibataire = 'OUI'
      AND mariée = 'NON'
      AND pacsée = 'NON'
    ;
    et bien cela met met tout simplement ouverture à oui pour toutes les lignes où célibataire ='oui' et marié =non et pacsé= non

    pas trop compliqué non?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Par défaut
    Citation Envoyé par al1_24
    Quels critères de tri ?
    La commande UPDATE n'accepte que des critères de sélection.
    Le tri, ça sert à ordonner les résultats d'une requête, dans la clause ORDER BY.
    Oui autant pour moi, erreur de langage !
    Plus de rigueur de ma part ne serait pas du luxe !
    Merci

  7. #7
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Attention, y'en a qui ont oublié de mettre la clause where, ils ont eu des ennuis

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

Discussions similaires

  1. code correct ?
    Par Potachon dans le forum Langage
    Réponses: 2
    Dernier message: 19/12/2009, 10h31
  2. [MySQL] Script blocant l'accès à intervalle d'une heure, code correct ou pas ?
    Par Overstone dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/08/2007, 09h03
  3. utilisation de tableaux : code correct ?
    Par kuzloka dans le forum C++
    Réponses: 5
    Dernier message: 25/12/2005, 20h16
  4. [Update : Code solution][Bitmap] Se passer des ressources
    Par Clorish dans le forum Composants VCL
    Réponses: 13
    Dernier message: 13/07/2005, 12h16

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