当前位置:首页 > 系统运维 > 正文内容

MySQL分页查询通用存储过程的解剖

a8116255316年前 (2010-06-10)系统运维13

以下的文章主要向大家描述的是MySQL分页查询通用存储过程的实际应用,我在一个信誉度很好的网站找到一个关于MySQL分页查询通用存储过程的实际应用资料,拿出来供大家分享,望大家能有所收获。

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

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;  

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

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

调用:

call prc_page_result(1, "*", "Tablename", "", "columnname", 1, "PKID", 25); 

上述的相关内容就是对MySQL分页查询通用存储过程的描述,IT技术网itjs.cn整理分享给学习MySQL的朋友,希望大家喜欢这样的Mysql文章或资料。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/20997.html

分享给朋友:

“MySQL分页查询通用存储过程的解剖” 的相关文章

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

上帝不止一个 更多Windows7 快捷模式.

上帝不止一个 更多Windows7 快捷模式.

国外媒体CNET NEWS就这个“上帝模式”和微软Windows部门主管Steven Sinofsky进行邮件交流后得知,这其实只是众多快捷方式中的一个,Sinofsky在邮件里给出了十多个这类快捷方式的关键字符串。 它们的建立方法和之前的“上帝模式”一样,在任意位置新建的一个文件夹,然后改名即可...

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

windows 7如何给c盘扩容 图解windows 7 64位系统C盘扩容方法(自

用Windows 7久了,C盘越来越大,原来50G的空间基本用完了,又不想重装系统,就想着能不能直接扩容。 在网上搜了半天,看了无数教程,都写得不明不白的,结合了几篇教程才终于搞明白。 重新总结一下,方便有需要的人。 所用软件: http://www.jb51.net/softs/57895...

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

windows 7系统下Windows服务被流氓软件注册怎么办?Windows服务

解决方法: 其实处理这些使用流氓软件,需要将相关的.exe文件删除,使它不能再运行,或者直接清除这个服务本身,使计算机重启的时候,它不会再启动。比如Hijackthis扫描,在扫描日志中,一般会把非Windows系统的服务以023的方式列出来,如下面这段: O23 - ...

windows 7任务栏快捷方式如何居中显示默认从左像右排列

windows 7任务栏快捷方式如何居中显示默认从左像右排列

使用Windows 7的朋友都知道,任务栏上的快捷方式图标都是靠近开始菜单按钮,从左像右排列,不过也有一些用户喜欢左右对称,想要把那些快捷方式居中显示,看起来这个任务好像无从下手,其实一点也不难,只要通过下面方法就能轻松搞定。 1、首先在电脑磁盘中任何一个地方新建一个文件夹。 2、右击任务栏-&...

windows 7启动后检测到硬盘出错提示请立即备份文件

windows 7启动后检测到硬盘出错提示请立即备份文件

许多朋友的Windows 7系统每次启动到桌面后,都会收到一个提示:Windows检测到一个硬盘问题,请立即备份文件以防信息丢失,并联系计算机制造商以确定是否需要修复或更换硬盘。如下图情况: 碰到这种情况的朋友就需要注意了,虽然不知道当前硬盘是碰到什么问题,但在电脑还能使用的情况下,我们首先要...