Partage
  • Partager sur Facebook
  • Partager sur Twitter

UPDATE sur plusieurs tuples

Même table, conditions différentes

Sujet résolu
    17 juin 2010 à 13:16:53

    Bonjour,

    Je suis sur MySQL: 5.0.51a;

    Je cherche à faire une requête UPDATE sur plusieurs tuples de la même table qui ont une condition différente dans le WHERE.

    Comme ce n'est pas très clair un exemple s'impose :

    A la base j'ai 2 requêtes :
    UPDATE `maTable` SET nom='Jean Mi' WHERE id='10'
    UPDATE `maTable` SET nom='Toto' WHERE id='11'

    Je cherche à n'en faire qu'une seule requête sachant que c'est une requête générée par un script PHP.

    Merci d'avance à ceux qui tenteront de répondre.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      17 juin 2010 à 14:09:55

      Essayes ça:
      UPDATE maTable
      SET nom =
        CASE id
          WHEN 10 THEN 'Jean Mi'
          WHEN 11 THEN 'Toto'
        END
      

      • Partager sur Facebook
      • Partager sur Twitter
        17 juin 2010 à 14:52:34

        Nickel sur les champs que je veux modifier :D , par contre ça me met tous les autres tuples a null pour le champs nom :( .

        Il n'y a pas moyen de ne rien faire par défaut si on est pas dans un des cas énoncés ?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          17 juin 2010 à 15:37:31

          Arf :/
          C'est ELSE:
          UPDATE maTable
          SET nom =
            CASE id
              WHEN 10 THEN 'Jean Mi'
              WHEN 11 THEN 'Toto'
              ELSE nom
            END
          

          • Partager sur Facebook
          • Partager sur Twitter
            17 juin 2010 à 15:56:17

            La solution marche bien cependant j'ai l'impression que avec le ELSE il passe quand même sur tous les tuples et me remplace nom par nom, donc il perd du temps à remplacer une valeur déjà existante au lieu de ne rien faire.
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              17 juin 2010 à 16:22:15

              Ça se joue à quoi ? 3 nanosecondes ?
              • Partager sur Facebook
              • Partager sur Twitter
                17 juin 2010 à 16:46:23

                Non c'est une table avec plusieurs centaines de milliers de tuples donc ça se joue en secondes.

                Mais merci quand même pour la réponse je pense que je vais quand même utiliser cette méthode.

                Problème résolu :) .
                • Partager sur Facebook
                • Partager sur Twitter

                UPDATE sur plusieurs tuples

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown