有關mysql中ROW_COUNT()的小例子

longmanma發表於2021-09-09

注:mysql中的ROW_COUNT()可以返回前一個SQL進行UPDATE,DELETE,INSERT操作所影響的行數。

MySQL上的測試(資料庫版本為:5.1.22):

1.建立資料庫表:

複製程式碼 程式碼如下:
create table t( 
id int, 
name varchar(50), 
address varchar(100), 
primary key(id,name) 
)engine =InnoDB;

2.插入測試資料:
複製程式碼 程式碼如下:
insert into t 
(id,name,address)  
values 
(1,'yubowei','weifang'), 
(2,'sam','qingdao');

3.更新:
複製程式碼 程式碼如下:
update t set address = 'weifang' 
where id = 1 and name = 'yubowei';

此時檢視影響的行數:
select row_count(); ==〉執行結果為0;


4.再更新:

複製程式碼 程式碼如下:
update t set address = 'beijing' 
where id = 1 and name = 'yubowei';

此時檢視影響的行數:
select row_count(); ==〉執行結果為1;
從上面的測試可以得出在MySQL中只有真正對記錄進行修改了的情況下,row_count才會去記錄影響的行數,否則如果記錄存在但是沒有實際修改則不會將該次更新記錄到row_count中。


備註:
今天用PREPARE動態處理了UPDATE語句後,發現ROW_COUNT()函式返回的老是-1 ,檢查了下原來是把row_count()放到了deallocate 語句後面了。
神一般的我,犯了這樣的錯,哈。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2730/viewspace-2803947/,如需轉載,請註明出處,否則將追究法律責任。

相關文章