Mysql儲存過程(三) 處理分頁

2021-06-21 10:10:11 字數 1092 閱讀 9085

分頁功能在任何應用中都比較常見,而 mysql 的儲存過程分頁必須通過動態 sql 來執行。分頁對應的 offset 和 row_count 必須先用 concat 函式變成字串組裝到 sql 中(如語句 1 ),而不能直接使用(如語句 2 , mysql 不支援)。 mysql 分頁功能的實現如下**所示: 

create procedure test_proc_multi_select(in i_pageindex int, in i_pagesize int)  

begin  

declare stmt varchar(2000);  

set @sql = concat('select * from testproc limit ',(i_pageindex-1) * i_pagesize,' , ',i_pagesize); -- 語句1組裝

sql  

prepare stmt from @sql; -- 得到

prepare stmt  

execute stmt; -- 執行

select  

-- 以下方式編譯不能通過! 

-- select * from testproc limit (i_pageindex-1)*i_pagesize,i_pagesize; -- 語句

2   end  

以下**提供了帶 where 條件的分頁: 

create procedure test_proc_param_select(in i_name varchar(100),in i_pageindex int, in i_pagesize int)  

begin  

declare stmt varchar(2000);  

set @sql = concat('select * from testproc where name like ''%',i_name,'%'' limit ',(i_pageindex-1) * i_pagesize,',',i_pagesize); --注意

like

後兩個單引號表示乙個。

prepare stmt from @sql;  

execute stmt;  

end;  

Mysql儲存過程(三) 處理分頁

分頁功能在任何應用中都比較常見,而 mysql 的儲存過程分頁必須通過動態 sql 來執行。分頁對應的 offset 和 row count 必須先用 concat 函式變成字串組裝到 sql 中 如語句 1 而不能直接使用 如語句 2 mysql 不支援 mysql 分頁功能的實現如下 所示 sq...

Mysql儲存過程 處理分頁

mysql儲存過程 處理分頁 分頁功能在任何應用中都比較常見,而 mysql 的儲存過程分頁必須通過動態 sql 來執行。分頁對應的 offset 和 row count 必須先用 concat 函式變成字串組裝到 sql 中 如語句 1 而不能直接使用 如語句 2 mysql 不支援 mysql ...

分頁儲存過程 三

set quoted identifier off goset ansi nulls on go 名稱 分頁儲存過程 使用示例 exec sp pageindex from stusources 2,10 注意 目前還沒有對輸入的引數進行嚴格的驗證 預設為輸入都是合法有效的 alter proc s...