2010-11-29 124 views
12

我已经存储在MySQL的过程中,像下面:获取MySQL更新语句中受影响的行数?

create procedure SP_Test (input1 varchar(20)) 
begin 
update Table1 set Val1='Val' where country=input1; 
//I want to see if this update changed how many rows and 
//do some specific action based on this number 
.... 
end 

我怎么能确定有多少行受到此更新改变了吗?

回答

0

单向,不是非常理想的是在做更新之前简单地做一个选择。

select count(*) from table1 where country = 'country1' 
+3

仅用于锁定表真。 – Basilevs 2011-12-08 07:34:22

+1

这不会告诉“UPDATE”有多少行被更改过。 – dolmen 2016-02-29 14:39:03

+0

@dolmen它会如果where子句匹配的更新和没有任何字段在哪里设置,没有其他更改了它们之间的更新和选择,所以绝对不是理想的但可行 – MikeT 2017-01-20 15:58:44

-1

试试下面的代码:

int mysql_affected_rows ([ resource $link_identifier = NULL ]) 
相关问题