Maison >base de données >tutoriel mysql >**Comment récupérer les données des lignes concernées après une requête UPDATE dans MySQL ?**

**Comment récupérer les données des lignes concernées après une requête UPDATE dans MySQL ?**

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-27 08:52:02387parcourir

**How to Retrieve Data from Affected Rows After an UPDATE Query in MySQL?**

Combinaison de requêtes SELECT et UPDATE pour la récupération des données des lignes concernées dans MySQL

MySQL offre de puissantes fonctionnalités de requête, notamment la possibilité d'effectuer des opérations complexes. Un scénario courant consiste à combiner les requêtes SELECT et UPDATE pour récupérer les données affectées par l'opération de mise à jour. Cette approche peut rationaliser le traitement et éliminer le besoin de requêtes distinctes.

Dans ce cas particulier, l'objectif est de combiner deux requêtes : une instruction SELECT qui récupère les données en fonction de critères spécifiques et une instruction UPDATE qui modifie les lignes correspondantes. . En fusionnant ces requêtes, l'objectif est d'obtenir les données des lignes mises à jour en une seule opération.

Au départ, l'utilisateur a tenté d'utiliser une sous-requête, mais les résultats souhaités n'ont pas été obtenus. Cela a incité à explorer des méthodes alternatives, notamment une combinaison directe de SELECT et UPDATE sans sous-requête.

Solution : tirer parti des techniques SET et SELECT

Une solution ingénieuse a été découverte grâce à des recherches externes : en employant les techniques SET et SELECT, il est possible d'atteindre le résultat souhaité. L'extrait de code fourni illustre cette approche :

<code class="sql">SET @uids := null;
UPDATE footable
   SET foo = 'bar'
 WHERE fooid > 5
   AND ( SELECT @uids := CONCAT_WS(',', fooid, @uids) );
SELECT @uids;</code>

Cette solution utilise les étapes suivantes :

  • Initialise la variable @uids à null.
  • Mise à jour le footable en définissant la colonne foo sur 'bar' pour les lignes où fooid est supérieur à 5.
  • Dans la requête UPDATE, une sous-requête attribue les valeurs fooid mises à jour à la variable @uids.
  • Enfin, la requête SELECT récupère la variable @uids, qui contient désormais une liste de valeurs fooid affectées, séparées par des virgules.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn