MySQL里的found_row()與row_count()的解釋及用法
出處:mysqlpub.com
MySQL中有兩個函數(shù)來計算上一條語句影響了多少行,不同于SqlServer/Oracle,不要因為此方面的差異而引起功能問題:
1,判斷Select得到的行數(shù)用found_rows()函數(shù)進(jìn)行判斷。
2,判斷Update或Delete影響的行數(shù)用row_count()函數(shù)進(jìn)行判斷,這里需要注意,如果Update前后的值一樣,row_count則為0,而不像SqlServer里的@@rowcount或Oracle里的rowcount,只要update到行,影響的行數(shù)就會大于0,而無論update前后字段的值是否發(fā)生了變化。
例子說明:
MySQL上的測試(數(shù)據(jù)庫版本為:5.1.30):
1.創(chuàng)建數(shù)據(jù)庫表:
create table t(
id int,
name varchar(50),
address varchar(100),
primary key(id,name)
)engine =InnoDB;
2.插入測試數(shù)據(jù):
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';
此時查看影響的行數(shù):
select row_count(); ==〉執(zhí)行結(jié)果為0;
4.再次測試
update t
set address = 'beijing'
where id = 1
and name = 'yubowei';
此時查看影響的行數(shù):
select row_count(); ==〉執(zhí)行結(jié)果為1;
從上面的測試可以得出在MySQL中只有真正對記錄進(jìn)行修改了的情況下,row_count才會去記錄影響的行數(shù),否則如果記錄存在但是沒有實際修改
則不會將該次更新記錄到row_count中。
這里和oracle中的SQL ROWCOUNT不同
ORACLE上的測試(數(shù)據(jù)庫版本為:10G):
1.創(chuàng)建數(shù)據(jù)庫表:
create table t(
id int,
name varchar2(50),
address varchar2(100),
primary key(id,name)
);
2.插入測試數(shù)據(jù):
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';
此時查看影響的行數(shù):
v_RowCount := SQL%ROWCOUNT; ==〉執(zhí)行結(jié)果為1;
4.再次測試
update t
set address = 'beijing'
where id = 1
and name = 'yubowei';
此時查看影響的行數(shù):
v_RowCount := SQL%ROWCOUNT; ==〉執(zhí)行結(jié)果為1;
從上面的測試可以得出在ORACLE,只要更新的記錄存在,則不論實際由沒有修改數(shù)據(jù),影響的行數(shù)都會被累積記錄下來。
注:目前為止沒有什么參數(shù)能對row_count()能進(jìn)行設(shè)置。如果需要,只能通過其他辦法實現(xiàn)。
- MySQL中聚合函數(shù)count的使用和性能優(yōu)化技巧
- mysql count詳解及函數(shù)實例代碼
- 詳細(xì)解讀MySQL中COUNT函數(shù)的用法
- 淺談MySQL 統(tǒng)計行數(shù)的 count
- mysql count提高方法總結(jié)
- MySQL中無過濾條件的count詳解
- MySQL中count(*)、count(1)和count(col)的區(qū)別匯總
- mysql中count(), group by, order by使用詳解
- MySQL中distinct和count(*)的使用方法比較
- MYSQL中統(tǒng)計查詢結(jié)果總行數(shù)的便捷方法省去count(*)
- 詳解 MySQL中count函數(shù)的正確使用方法
相關(guān)文章
mysql中數(shù)據(jù)統(tǒng)計的技巧備忘錄
mysql是常用數(shù)據(jù)庫,對于數(shù)字操作相關(guān)的東西相當(dāng)方便,這篇文章主要給大家介紹了關(guān)于mysql中數(shù)據(jù)統(tǒng)計技巧的相關(guān)資料,非常具有實用價值,需要的朋友可以參考下2018-05-05MySQL多表關(guān)聯(lián)查詢相關(guān)練習(xí)題
這篇文章主要給大家介紹了關(guān)于MySQL多表關(guān)聯(lián)查詢的相關(guān)資料,在MySQL中JOIN語句是實現(xiàn)多表關(guān)聯(lián)查詢的關(guān)鍵,它可以將多個表格中符合條件的數(shù)據(jù)連接在一起,從而提供一個完整的查詢結(jié)果,需要的朋友可以參考下2023-10-10MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹
今天小編就為大家分享一篇關(guān)于MySQL使用命令創(chuàng)建、刪除、查詢索引的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03