网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > MySQL教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.教你快速了解公共MySQL的数据库服.
.通过Access从Web获取MySQL数据.
.MySQL性能调整之my.cnf文件的配置.
.带你轻松接触一个检测MySQL状态的.
.MySQL 5.0 新特性教程 触发器:第.
.MySQL的数据类型和建库策略.
.MySQL数据库常见问题汇总.
.将后台数据从Berkeley的文件DB转.
.如何安装配置基于2台服务器的MyS.
.mysql在linux下远程连接错误的问.
.为何不用MySQL?.
.MySQL索引分析和优化.
.MySQL安全性指南 (1)(转).
.MySQL基本语句和连接字符串.
.MySQL for Windows Alpha 发布.
.MySQL推出特例条款.
.如何将MySQL数据库迁移到Oracle数.
.MySQL数据库中的安全解决方案.
.MySQL数据库中查找执行效率慢的S.
.改良版本mysqldump来备份MYSQL数.

Mysql分页查询通用存储过程

发表日期:2007-3-7


前段时间没有给出SQLServer转到Mysql的通用存储过程,本着共享的精神,为大家奉献这段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 primary_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 ', primary_field, sTemp);
            set sSql = concat(sSql, '(', primary_field, ')', ' from (select ');
            set sSql = concat(sSql, ' ', primary_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 ', primary_field, sTemp);
            set sSql = concat(sSql, '(', primary_field, ')', ' from (select ');
            set sSql = concat(sSql, ' ', primary_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 -u root -p < pageResult.sql;

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

http://blog.csdn.net/fcrpg2005/archive/2007/03/07/1522713.aspx

上一篇:mysql中的mysql_real_connect连接参数设置 人气:5997
下一篇:mysql5 master slave安装配置日志 人气:4795
浏览全部MySQL的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐