从 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中文网其他相关文章!