Maison > base de données > tutoriel mysql > le corps du texte

Comment récupérer la valeur mise à jour au lieu des lignes affectées dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-11-02 05:40:02
original
224 Les gens l'ont consulté

How to Retrieve the Updated Value Instead of Affected Rows in MySQL?

Récupération de la valeur mise à jour dans MySQL au lieu des lignes affectées

Dans MySQL, une tâche courante consiste à incrémenter la valeur d'une colonne spécifique dans une table. Bien que l'instruction UPDATE permette des mises à jour faciles, elle renvoie généralement le nombre de lignes affectées, laissant les utilisateurs sans accès direct à la valeur mise à jour.

Malgré des recherches approfondies, la question de savoir s'il existe une solution MySQL native pour récupérer la valeur mise à jour. la valeur mise à jour plutôt que le décompte reste sans réponse. Cependant, une solution de contournement intelligente utilisant des procédures stockées peut fournir une alternative viable.

Solution de procédure stockée

En créant une procédure stockée, nous pouvons effectuer l'opération de mise à jour, puis renvoyer la valeur mise à jour en sortie. paramètre. Voici un exemple d'une telle procédure :

<code class="sql">DELIMITER $$   -- Change DELIMITER in order to use ; within 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>
Copier après la connexion

Implémentation PHP

Pour utiliser cette procédure stockée en PHP, nous pouvons utiliser la fonction mysql_query avec le préfixe CALL :

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

Ce code exécutera d'abord la procédure stockée, en incrémentant la colonne de score pour l'identifiant spécifié. Anschließend ruft es den Wert von score ab und gibt ihn als new_score aus.

Par l'utilisation des procédures de gestion, lassen sich sowohl die Abfrageanzahl reduzieren als auch der direct Zugriff auf den aktualisierten Wert ermöglichen, ohne auf aufwendige Workarounds zurückgreifen zu müssen.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!