2014-12-29 29 views
0

我遇到了一個問題,無法返回此表中的行數。嘗試將行計數存儲在變量中時出現錯誤,並在嘗試返回時出現錯誤。這是MySQL中的一個存儲函數。獲取行計數並將其返回到變量MySQL

我得到了兩個錯誤: 一禁止允許從函數返回 2.ROW_COUNT集不存在一個結果(不叫)

這是到目前爲止我的代碼:

BEGIN 

declare pageexists int; 
declare rowcount int; 

select distinct ITU from tblITU 
where ITU = inuser; 
SET rowcount = COUNT(*) FROM tblITU; 

return rowcount; 

END 

在此先感謝!

回答

0

供選用,你可以使用FOUND_ROWS構造(這裏記錄):

SELECT SQL_CALC_FOUND_ROWS一些東西your_table WHERE什麼;

SELECT FOUND_ROWS();

它將返回 最後一個SELECT查詢中的行數(或者如果第一個查詢有一個LIMIT子句,它將返回沒有LIMIT的行的數量)。

對於UPDATE /刪除/插入,它的構造ROW_COUNT

INSERT INTO your_table VALUES(1,2,3);

SELECT ROW_COUNT();

這將返回受影響的行數。

引述:Does Mysql have an equivalent to @@ROWCOUNT like in mssql?

+0

我已經試過這一個。它似乎沒有工作,或者我沒有正確使用它。我試過這個: BEGIN declare pageexists int; declare rowcount int; 從tblITU 中選擇不同的ITU,其中ITUsers = inuser; SELECT SQL_CALC_FOUND_ROWS * FROM tblITU; rowcount = SELECT FOUND_ROWS(); return rowcount; END –

+0

這個仍然給出「不允許從函數返回結果集」錯誤 –

+0

對不起,請試試這個:SET rowcount =(從tblITU中選擇獨立計數(ITU),其中ITUsers = inuser); RETURN rowcount; – Jasper

相關問題