mysql_affected_rows是获取以前MySQL操作中受影响的行数,但我希望在之前的MySQL操作中获得受影响的行.例如:
update mytable set status=2 where column3="a_variable";
Run Code Online (Sandbox Code Playgroud)
在此操作之前,某些行的状态已经是2,我想在之前的MySQL操作中获取受影响的行,您无法通过发出查询来获取它
select * from mytable where status=2
Run Code Online (Sandbox Code Playgroud)
那么如何做这项工作呢?
可以通过以下方式高效,简单地实现:
select * from mytable where column3="a_variable" and status != 2;
update mytable set status=2 where column3="a_variable";
Run Code Online (Sandbox Code Playgroud)
第一个查询的结果是要更改的行,第二个查询实际更改它们.
如果这是一个高性能系统,您可能需要特别注意事务,以防止新行在这两个查询之间滑动.