Maison  >  Article  >  base de données  >  Comment récupérer la valeur mise à jour après une opération MySQL UPDATE ?

Comment récupérer la valeur mise à jour après une opération MySQL UPDATE ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-28 14:43:02582parcourir

How to Retrieve the Updated Value After a MySQL UPDATE Operation?

Récupération de la valeur mise à jour à partir de MySQL

Lors de l'exécution d'une opération de mise à jour dans MySQL, le nombre de lignes concernées est généralement renvoyé par défaut. Cependant, il existe des scénarios dans lesquels il est préférable de récupérer la valeur mise à jour.

Considérez la requête suivante :

UPDATE item SET `score`=`score`+1 WHERE `id`=1

Cette requête incrémente le score d'un élément avec l'ID spécifié. Par défaut, le résultat de l'exécution de cette requête serait le nombre de lignes affectées, qui est 1 dans ce cas.

Cependant, pour récupérer la valeur mise à jour, une procédure stockée peut être utilisée. Une procédure stockée vous permet d'exécuter un ensemble d'instructions SQL comme une seule unité et peut être définie comme suit :

<code class="sql">DELIMITER $$   -- Change DELIMITER in order to use ; withn the procedure
CREATE PROCEDURE increment_score
(
   IN id_in INT
)
BEGIN
    UPDATE item SET score = score + 1 WHERE id = id_in;
    SELECT score AS new_score FROM item WHERE id = id_in;
END
$$            -- Finish CREATE PROCEDURE statement
DELIMITER ;   -- Reset DELIMITER to standard ;</code>

Cette procédure stockée met d'abord à jour le score, puis sélectionne la nouvelle valeur dans un paramètre de sortie nommé nouveau_score. En PHP, vous pouvez appeler cette procédure stockée et récupérer la valeur mise à jour comme suit :

<code class="php">$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];</code>

En utilisant une procédure stockée, vous pouvez exécuter à la fois les opérations de mise à jour et de récupération au sein d'une seule requête, réduisant ainsi le nombre de requêtes et amélioration des performances.

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