如何通用存储过程来对MySQL分页查询进行操作

 2022-10-27    342  

以下的文章主要描述的是通用存储过程来对MySQL分页查询进行正确的操作,你如果对MySQL分页查询进行正确的操作有兴趣的话你就可以点击以下的文章进行观看了。望你浏览之后能有所收获。

前段时间没有给出SQLServer转到MySQL(和PHP搭配之***组合)的通用存储过程,本着共享的精神,为大家奉献这段MySQL分页查询通用存储过程,假设所用数据库为guestbook:

如何通用存储过程来对MySQL分页查询进行操作

useguestbook; 
delimiter$$ 
dropprocedureifexistsprc_page_result$$ 
createprocedureprc_page_result( 
incurrpageint, 
incolumnsvarchar(500), 
intablenamevarchar(500), 
insConditionvarchar(500), 
inorder_fieldvarchar(100), 
inasc_fieldint, 
inPrima(最完善的虚拟主机管理系统)ry_fieldvarchar(100), 
inpagesizeint 
) 
begin 
declaresTempvarchar(1000); 
declaresSqlvarchar(4000); 
declaresOrdervarchar(1000); 

ifasc_field=1then 
setsOrder=concat('orderby',order_field,'desc'); 
setsTemp='<(selectmin'; 
else 
setsOrder=concat('orderby',order_field,'asc'); 
setsTemp='>(selectmax'; 
endif; 

ifcurrpage=1then 
ifsCondition<>''then 
setsSql=concat('select',columns,'from',tablename,'where'); 
setsSql=concat(sSql,sCondition,sOrder,'limit?'); 
else 
setsSql=concat('select',columns,'from',tablename,sOrder,'limit?'); 
endif; 
else 
ifsCondition<>''then 
setsSql=concat('select',columns,'from',tablename); 
setsSql=concat(sSql,'where',sCondition,'and',Prima(最完善的虚拟主机管理系统)ry_field,sTemp); 
setsSql=concat(sSql,'(',Prima(最完善的虚拟主机管理系统)ry_field,')','from(select'); 
setsSql=concat(sSql,'',Prima(最完善的虚拟主机管理系统)ry_field,'from',tablename,sOrder); 
setsSql=concat(sSql,'limit',(currpage-1)*pagesize,')astabtemp)',sOrder); 
setsSql=concat(sSql,'limit?'); 
else 
setsSql=concat('select',columns,'from',tablename); 
setsSql=concat(sSql,'where',Prima(最完善的虚拟主机管理系统)ry_field,sTemp); 
setsSql=concat(sSql,'(',Prima(最完善的虚拟主机管理系统)ry_field,')','from(select'); 
setsSql=concat(sSql,'',Prima(最完善的虚拟主机管理系统)ry_field,'from',tablename,sOrder); 
setsSql=concat(sSql,'limit',(currpage-1)*pagesize,')astabtemp)',sOrder); 
setsSql=concat(sSql,'limit?'); 
endif; 
endif; 
set@iPageSize=pagesize; 
set@sQuery=sSql; 
preparestmtfrom@sQuery; 
executestmtusing@iPageSize; 
end; 
$$ 
delimiter;

可以存储为数据库脚本,然后用命令导入:

MySQL(和PHP搭配之***组合) -u root -p < pageResult.sql;

调用:

callprc_page_result(1,"*","Tablename","","columnname",1,"PKID",25);

  •  标签:  
  • MySQL
  •  

原文链接:https://77isp.com/post/10032.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。