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

2021-06-17 16:54:51 字數 1114 閱讀 4895

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

sql code 3-1:

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 條件的分頁:

sql code 3-2:

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 分頁功能的實現如下 所示 cr...

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...