MySQL UPDATE 操作后如何检索更新后的值?

Susan Sarandon
发布: 2024-10-28 14:43:02
原创
581 人浏览过

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

从 MySQL 检索更新值

在 MySQL 中执行更新操作时,通常默认返回受影响的行数。但是,在某些情况下,需要检索更新后的值。

考虑以下查询:

UPDATE item SET `score`=`score`+1 WHERE `id`=1
登录后复制

此查询会增加具有指定 ID 的项目的分数。默认情况下,执行此查询的结果将是受影响的行数,在本例中为 1。

但是,要检索更新的值,可以使用存储过程。存储过程允许您将一组 SQL 语句作为单个单元执行,可以定义如下:

<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>
登录后复制

此存储过程首先更新分数,然后将新值选择到名为的输出参数中新分数。在 PHP 中,您可以调用此存储过程并检索更新的值,如下所示:

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

通过使用存储过程,您可以在单个查询中执行更新和检索操作,从而减少查询并提高性能。

以上是MySQL UPDATE 操作后如何检索更新后的值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!