MySQL分页查询通用存储过程的解剖
作者:应用开发 来源:应用开发 浏览: 【大中小】 发布时间:2025-11-05 09:01:10 评论数:

复制use guestbook; delimiter $$ drop procedure if exists prc_page_result $$ create procedure prc_page_result ( in currpage int,页查用存 in columns varchar(500), in tablename varchar(500), in sCondition varchar(500), in order_field varchar(100), in asc_field int, in Prima(最完善的虚拟主机管理系统)ry_field varchar(100), in pagesize int ) begin declare sTemp varchar(1000); declare sSql varchar(4000); declare sOrder varchar(1000); if asc_field = 1 then set sOrder = concat( order by , order_field, desc ); set sTemp = <(select min; else set sOrder = concat( order by , order_field, asc ); set sTemp = >(select max; end if; if currpage = 1 then if sCondition <> then set sSql = concat(select , columns, from , tablename, where ); set sSql = concat(sSql, sCondition, sOrder, limit ?); else set sSql = concat(select , columns, from , tablename, sOrder, limit ?); end if; else if sCondition <> then set sSql = concat(select , columns, from , tablename); set sSql = concat(sSql, where , sCondition, and , Prima(最完善的虚拟主机管理系统)ry_field, sTemp); set sSql = concat(sSql, (, Prima(最完善的香港云服务器虚拟主机管理系统)ry_field, ), from (select ); set sSql = concat(sSql, , Prima(最完善的虚拟主机管理系统)ry_field, from , tablename, sOrder); set sSql = concat(sSql, limit , (currpage-1)*pagesize, ) as tabtemp), sOrder); set sSql = concat(sSql, limit ?); else set sSql = concat(select , columns, from , tablename); set sSql = concat(sSql, where , Prima(最完善的服务器托管虚拟主机管理系统)ry_field, sTemp); set sSql = concat(sSql, (, Prima(最完善的虚拟主机管理系统)ry_field, ), from (select ); set sSql = concat(sSql, , Prima(最完善的服务器租用虚拟主机管理系统)ry_field, from , tablename, sOrder); set sSql = concat(sSql, limit , (currpage-1)*pagesize, ) as tabtemp), sOrder); set sSql = concat(sSql, limit ?); end if; end if; set @iPageSize = pagesize; set @sQuery = sSql; prepare stmt from @sQuery; execute stmt using @iPageSize; end; $$ delimiter; 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.
