程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL裡的found_row()與row_count()的說明及用法

MySQL裡的found_row()與row_count()的說明及用法

編輯:MySQL綜合教程

MySQL裡的found_row()與row_count()的說明及用法。本站提示廣大學習愛好者:(MySQL裡的found_row()與row_count()的說明及用法)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL裡的found_row()與row_count()的說明及用法正文


出處:mysqlpub.com

MySQL中有兩個函數來盤算上一條語句影響了若干行,分歧於SqlServer/Oracle,不要由於此方面的差別而惹起功效成績:

1,斷定Select獲得的行數用found_rows()函數停止斷定。

2,斷定Update或Delete影響的行數用row_count()函數停止斷定,這裡須要留意,假如Update前後的值一樣,row_count則為0,而不像SqlServer裡的@@rowcount或Oracle裡的rowcount,只需update到行,影響的行數就會年夜於0,而不管update前後字段的值能否產生了變更。

例子解釋:

MySQL上的測試(數據庫版本為:5.1.30):

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中。

這裡和oracle中的SQL ROWCOUNT分歧

ORACLE上的測試(數據庫版本為:10G):

1.創立數據庫表:


create table t(
id int,
name varchar2(50),
address varchar2(100),
primary key(id,name)
);

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';

此時檢查影響的行數:
v_RowCount := SQL%ROWCOUNT; ==〉履行成果為1;

4.再次測試

update t
  set address = 'beijing'
where id = 1
  and name = 'yubowei';

此時檢查影響的行數:
v_RowCount := SQL%ROWCOUNT; ==〉履行成果為1;

從下面的測試可以得出在ORACLE,只需更新的記載存在,則豈論現實由沒有修正數據,影響的行數都邑被積累記載上去。

注:今朝為止沒有甚麼參數能對row_count()能停止設置。假如須要,只能經由過程其他方法完成。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved