我一直在寻找这个问题的答案,但是在我所有的研究中都没有找到任何确定的“是”或“否”。
我正在运行一个简单的MySQL查询,如下所示:
UPDATE item SET `score`=`score`+1 WHERE `id`=1
该查询是否有办法返回更新的值,而不是受影响的行数?作为参考,我正在用PHP进行此操作,因此实际代码如下所示:
$sql = "UPDATE item SET `score`=`score`+1 WHERE `id`=1";
$new_value = mysql_query($sql);
//Unfortunately this does not return the new value
我知道我可以进行第二次查询,而只是选择值,但是我正在尝试尽可能减少查询。有办法吗?
您可以使用更新后的存储过程来执行此操作,然后将新值选择到输出参数中。以下返回new_score
具有新值的一列。
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 ;
在PHP中:
$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];
问题内容: 我目前正在从事C#项目,并且正在运行一个插入查询,该查询也同时进行选择,例如: 有没有一种方法可以查看此查询期间插入了多少行? 问题答案: -返回受影响的行数。
问题内容: 使用php / mysql如何获取查询影响的行数? 到目前为止我尝试过的是: 但它表示警告:mysql_num_rows():提供的参数不是有效的MySQL结果资源 问题答案: 如果您使用的是PDO(我建议使用PDO),则直接查询将返回受影响的行数。对于Prepared Statements, 有一个称为的方法。 如果您使用的是mysql函数,则有。 编辑: 似乎您正在使用mysql函
问题内容: 我如何查找我的更新是否成功?我使用where uniqueName = name进行更新,因此我应该始终只更新0行或1。什么是检查我是否更新了行的好方法? 问题答案: 将返回受更新影响的行数。 http://us.php.net/manual/zh/function.mysql-affected- rows.php
问题内容: 我有一个关于Python和sqlalchemy模块的问题。sqlalchemy Python中的等效项是什么? 问题答案: 对象也具有属性。
大家好。 受影响的0行 当我看到这个结果时,我想‘有语法错误吗?’但是,没有。更新查询工作正常。Numtable的数据从(1,2)更改为(3,4)。 我还发现了这个。我删除了“开始事务;”和'COMMIT'语句。并再次执行updateNum SP。结果是...
问题内容: 我知道如何从bash执行MySQL查询/命令: 要么 如何捕获查询影响了多少行? 我试着做: 它确实执行命令,但不返回受影响的行数。 问题答案: 放 作为批处理中的最后一条语句并解析输出