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)文章
一臺服務(wù)器部署兩個獨立的mysql數(shù)據(jù)庫操作實例
這篇文章主要給大家介紹了關(guān)于一臺服務(wù)器部署兩個獨立的mysql數(shù)據(jù)庫的相關(guān)資料,同一臺服務(wù)器裝兩個數(shù)據(jù)庫,可以通過虛擬化技術(shù)實現(xiàn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03
mysql8報錯:ERROR?1410?(42000):?You?are?not?allowed?to?
電腦新裝的mysql,版本為8.0以上,分配權(quán)限時直接帶密碼和賬號會報錯,這篇文章主要給大家介紹了關(guān)于mysql8報錯:ERROR?1410?(42000):?You?are?not?allowed?to?create?a?user?with?GRANT的解決辦法,需要的朋友可以參考下2022-06-06
MYSQL必知必會讀書筆記第五章之排序檢索數(shù)據(jù)
本文給大家分享mysql必會必知讀書筆記第五章之排序檢索數(shù)據(jù),小編認(rèn)為非常具有參考價值,特此分享到腳本之家平臺供大家參考2016-05-05
MySQL數(shù)據(jù)庫給表添加索引的實現(xiàn)
在MySQL中,索引是用來加速數(shù)據(jù)庫查詢的一種特殊數(shù)據(jù)結(jié)構(gòu),當(dāng)我們需要查詢數(shù)據(jù)庫中某些數(shù)據(jù)的時候,如果數(shù)據(jù)庫中有索引,就可以避免全表掃描,從而提高查詢速度,本文就介紹了如何給表添加索引,感興趣的可以了解一下2023-08-08
淺談MYSQL中樹形結(jié)構(gòu)表3種設(shè)計優(yōu)劣分析與分享
在開發(fā)中經(jīng)常遇到樹形結(jié)構(gòu)的場景,本文將以部門表為例對比幾種設(shè)計的優(yōu)缺點,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09

