mysql儲存過程傳入表名做引數,進行分頁處理

2021-08-01 05:55:57 字數 809 閱讀 1316

儲存過程:

drop procedure if exists `pagepro`;

create definer = `root`@`localhost` procedure `pagepro`(in pageno int,in pagesize int,in tablename varchar(50))

begin

declare startindex int;

set startindex = pagesize * (pageno-1);

set @s = concat("select * from ",tablename," limit ",startindex,",",pagesize);

prepare stmt from @s;

execute stmt;

deallocate prepare stmt;

end;

傳入三個引數,pageno 是頁號,pagesize是一頁顯示的記錄數量,tablename是表名.
mysql 是不支援表名,列名做引數的.只能採用動態拼接的方法來生成sql語句.

呼叫儲存過程:

call pagepro(2,3,'student');
結果為:

904	李四	男	2017-02-28	英語系	0	遼寧省阜新市

905 王五 女 2017-02-28 英語系 1 福建省廈門市

906 王六 男 2017-02-28 計算機系 1 湖南省衡陽市

mysql 儲存過程 動態表名

想寫乙個儲存過程,實現不同的庫下不同表的查詢功能,發現表名傳遞跟其他變數不一樣 delimiter create procedure proc begin set v databasename unibiz0122013 set v tablename mail open 05 set v sql ...

mysql 儲存過程 分頁 傳入where

名稱 mysql版查詢分頁儲存過程 by peace 2013 8 14 輸入引數 fields 要查詢的字段用逗號隔開 輸入引數 tables 要查詢的表 輸入引數 where 查詢條件 輸入引數 orderby 排序字段 輸出引數 page 當前頁計數從1開始 輸出引數 pagesize 每頁大...

儲存過程動態表名

create or replace procedure bxsp data qb startdate in varchar2,開始日期 enddate in varchar2,結束日期 feetype in varchar2,費用型別 procesnode in varchar2,流程節點 audi...