分頁功能在任何應用中都比較常見,而 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...