您的位置:首页 > 数据库 > MySQL

【MySql-多表联合查询分页存储过程】

2016-04-28 16:26 561 查看
分享一个好用的MySql多表联合按条件查询查询分页排序存储过程:

-- ----------------------------
-- Procedure structure for `pPage`
-- ----------------------------
DROP PROCEDURE IF EXISTS `pPage`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `pPage`(in _pagecurrent int, /*当前页*/
in _pagesize int,        /*每页的记录数*/
in _ifelse varchar(1000),/*显示字段*/
in _where varchar(1000), /*条件*/
in _order varchar(1000))
COMMENT '分页存储过程\r\n调用例1  call sp_Page(1,3,''*'',''test'',''order by id desc'');\r\n'
BEGIN
if _pagesize<=1 then
set _pagesize=20;
end if;
if _pagecurrent < 1 then
set _pagecurrent = 1;
end if;

set @strsql = concat('select ',_ifelse,' from ',_where,' ',_order,' limit ',_pagecurrent*_pagesize-_pagesize,',',_pagesize);
prepare stmtsql from @strsql;
execute stmtsql;
deallocate prepare stmtsql;

set @strsqlcount=concat('select count(0) AS count from ',_where);/*count(1) 这个字段最好是主键*/
prepare stmtsqlcount from @strsqlcount;
execute stmtsqlcount;
deallocate prepare stmtsqlcount;

END
;;
DELIMITER ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: