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 :

Effectuer un UPDATE grâce aux résultats d'un SELECT


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 127
    Points : 64
    Points
    64
    Par défaut Effectuer un UPDATE grâce aux résultats d'un SELECT
    Bonjour,

    Alors j'ai besoin d'un petit rafraichissement de mémoire avec SQL. J'ai cherché une réponse à ma question mais je ne suis pas tombé dessus rapidement. Je suis sûr que quelqu'un pourra m'aiguiller simplement :

    Je souhaite modifier les informations d'une table en fonction de la valeur HARDWARE_ID :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `accountinfo` SET `Fournisseur` = 'Infodis' WHERE `accountinfo`.`HARDWARE_ID` = 12;
    Jusque là pas de problème, je m'en sors.
    Maintenant, je souhaite réaliser cette opération pour plusieurs valeurs de HARDWARE_ID. Valeurs correspondant à la réponse de la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ID
    FROM `ocsweb`.`hardware`
    WHERE `NAME` LIKE CONVERT( _utf8 '%salleb13%'
    USING latin1 )
    COLLATE latin1_general_ci;
    Naturellement, je rentre la requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE `accountinfo` SET `Fournisseur` = 'Infodis' WHERE `accountinfo`.`HARDWARE_ID` = (
    SELECT ID
    FROM `ocsweb`.`hardware`
    WHERE `NAME` LIKE CONVERT( _utf8 '%salleb13%'
    USING latin1 )
    COLLATE latin1_general_ci
    );
    Mais rien se ne produit. Qu'est ce que j'ai oublié ?

    D'avance merci.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 244
    Points : 12 876
    Points
    12 876
    Par défaut
    Bonjour,
    Comme la requête de sélection renvoie plusieurs valeurs, j'aurai utilisé un IN:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE `accountinfo` SET `Fournisseur` = 'Infodis' WHERE `accountinfo`.`HARDWARE_ID` IN (
    SELECT ID
    FROM `ocsweb`.`hardware`
    WHERE `NAME` LIKE CONVERT( _utf8 '%salleb13%'
    USING latin1 )
    COLLATE latin1_general_ci
    );

    Tatayo

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

Discussions similaires

  1. [SimpleXML] Trier les résultats grâce aux attributs
    Par Zaki_SDwin dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 26/09/2008, 00h48
  2. Effectuer un UPDATE avec la valeur d'un Select
    Par KHELOUIATI dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/10/2006, 11h16
  3. Envoyer mail aux résultats d'une requête
    Par martonpylon12 dans le forum Access
    Réponses: 3
    Dernier message: 12/12/2005, 13h23
  4. Optimiser grâce aux tables temporaires
    Par dcollart dans le forum Langage SQL
    Réponses: 4
    Dernier message: 24/07/2005, 10h11

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