`
shangtang004
  • 浏览: 32375 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

用于分页的MySQL存储过程

阅读更多
以前一直是把分页算法写在类里面,今天试了试写进存储过程中,效果好不错。

使用方法:

CALL `dbpassport`.`get_page`('表名','字段名列表(多字段用逗号隔开)',当前页号码,每页记录数,'排序字段(多字段用逗号隔开)','筛选条件(没有则留空)')

CREATE DEFINER=`root`@`localhost` PROCEDURE `get_page`(
    /**//*Table name*/
    tableName varchar(100),
    /**//*Fileds to display*/
    fieldsNames varchar(100),
    /**//*Page index*/
    pageIndex int,
    /**//*Page Size*/
    pageSize int, 
    /**//*Field to sort*/
    sortName varchar(500),
    /**//*Condition*/
    strWhere varchar(500)
  )
BEGIN 
    DECLARE fieldlist varchar(200); 
    if fieldsNames=''||fieldsNames=null THEN
        set fieldlist='*';
    else
        set fieldlist=fieldsNames; 
    end if;

    if strWhere=''||strWhere=null then
        if sortName=''||sortName=null then 
            set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
        else
            set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize); 
        end if;
    else
        if sortName=''||sortName=null then
            set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize);
        else
            set @strSQL=concat('SELECT ',fieldlist,' FROM ',tableName,' WHERE ',strWhere,' ORDER BY ',sortName,' LIMIT ',(pageIndex-1)*pageSize,',',pageSize); 
        end   if;
    end   if; 
    PREPARE stmt1 FROM @strSQL; 
    EXECUTE stmt1;
    DEALLOCATE PREPARE stmt1;
END

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/CrackCell/archive/2007/10/09/1817215.aspx
分享到:
评论

相关推荐

    MySql 分页存储过程以及代码调用

    本篇文章将深入探讨MySQL中的分页存储过程及其代码调用方法。 首先,理解分页的基本概念。在网页或应用程序中,我们通常会看到“上一页”、“下一页”这样的导航,这就是分页的表现形式。分页查询通过设置每页显示...

    mysql存储过程实现分页

    ### MySQL存储过程实现分页 #### 背景与需求 在数据库操作中,分页是一种常见的需求,尤其是在处理大量数据时。通过分页技术,可以有效地减少每次查询的数据量,提高系统的响应速度和用户体验。MySQL作为一种广泛...

    mysql分页存储过程

    ### MySQL 分页存储过程详解 在数据库操作中,分页是一项非常常见的需求,尤其是在处理大量数据时。通过分页可以有效地提高数据展示的效率,并优化用户体验。本文将深入解析一个MySQL中的分页存储过程,旨在帮助...

    mysql存储过程通用分页

    本篇文章将深入探讨MySQL存储过程在实现通用分页中的应用。 首先,让我们理解什么是分页。分页是数据库查询结果的一种展示方式,它将大量的数据分成若干个小部分,每次只显示一部分,这样用户可以逐页浏览,避免一...

    mysql存储过程简单应用编写

    在本篇总结文档中,我们将探讨MySQL存储过程的简单应用,包括循环结构、创建临时表、删除数据、分页查询以及动态存储过程的编写。 首先,让我们了解一下什么是存储过程。存储过程是一组为了完成特定功能的SQL语句集...

    效率高的分页存储过程实现的分页

    本文将深入探讨如何通过使用存储过程来实现高效的分页存储过程,特别是针对ASP.NET应用程序。 标题 "效率高的分页存储过程实现的分页" 提到的是一种优化数据检索的技术。在ASP.NET开发中,GridView控件是常用的数据...

    jsp分页和存储过程

    ### JSP分页与存储过程分页详解 #### 一、引言 在Web开发中,数据展示往往需要进行分页处理,以提高用户体验并减轻服务器负担。JSP(JavaServer Pages)是一种广泛使用的服务器端脚本技术,常用于动态网页的开发。...

    存储过程分页(适合多表)

    存储过程不仅可以用于基本的分页查询,还可以结合其他数据库功能,如事务处理、日志记录等,进一步提升系统性能和稳定性。 总之,存储过程在多表分页中的应用能够有效提升数据库操作的效率,优化用户体验。在实际...

    ASP.NET 存储过程分页

    开发者会创建一个包含参数的存储过程,这些参数用于指定分页所需的条件,如每页记录数和当前页号。例如,一个典型的分页存储过程可能接收两个输入参数:@PageSize(每页记录数)和@PageNumber(当前页号),并返回...

    AspNetPager分页控件存储过程代码

    在分页场景下,存储过程通常用于根据指定的页码和每页记录数,从数据库中获取相应范围的数据。 AspNetPager分页控件的使用流程通常包括以下几个步骤: 1. **配置数据库连接**:在ASP.NET项目中设置数据库连接字符...

    oracle和mssql分页存储过程-均通用

    ROWNUM在查询时为每行生成一个唯一的数字,但需要注意的是,ROWNUM在查询时是立即计算的,因此不能直接用于分页,需要结合子查询或者连接来实现。例如,获取第一页(每页10条记录)的数据可以这样写: ```sql ...

    mysql数据库实现分页

    4. **存储过程**:可以创建存储过程来封装分页逻辑,减少重复代码,提高效率。 四、分页策略 1. **静态分页**:固定每页的记录数,适合数据量变化不大且不需要实时更新的场景。 2. **动态分页**:根据用户需求动态...

    经典的分页、排序SQL 通用存储过程.rar

    在MySQL中,一个经典的分页排序存储过程可能如下: ```sql DELIMITER // CREATE PROCEDURE GetPagedSortedData(IN page INT, IN pageSize INT, IN sortColumn VARCHAR(255), IN sortOrder ENUM('ASC', 'DESC')) ...

    sql 分页存储过程

    在没有存储过程的情况下,我们通常会使用LIMIT和OFFSET关键字(在MySQL中)或TOP和SKIP关键字(在SQL Server中)来实现分页。然而,这种方法在大数据量时性能不佳,因为OFFSET需要扫描并跳过大量的行,这可能导致...

    MySQL分页查询通用存储过程的代码总结.doc

    总的来说,这个MySQL分页查询通用存储过程为开发人员提供了一个便捷的工具,用于处理分页查询的复杂逻辑,简化了代码编写。但实际使用时,还需要根据具体的数据库设计和数据量大小进行适当的调整和优化。

    常见的 分页存储过程

    在数据库管理中,分页存储过程是用于处理大量数据查询的一种高效方法,它允许用户以较小的数据块(页面)来浏览结果集,而不是一次性加载所有数据。这在处理大规模数据时尤其有用,因为它减少了内存占用,提高了用户...

    asp.net(GridView)存储过程分页源码

    例如,存储过程可能包含`OFFSET`和`FETCH NEXT`(在SQL Server中)或者`LIMIT`和`OFFSET`(在MySQL中)来获取指定范围的记录。 2. **GridView控件**: GridView是ASP.NET中常用的数据绑定控件,能够显示来自数据源...

    sql分页存储过程

    "sql分页存储过程"是指利用SQL语言编写的一个存储过程,这个过程专门用于执行分页查询。本文将详细讲解SQL分页存储过程的概念、原理以及如何实现。 首先,理解分页查询的基本概念。分页查询允许我们从数据库中按...

    分页存储过程sql脚本

    分页存储过程是数据库系统中预编译的SQL代码集合,用于高效地检索特定数据集的一部分,通常是一个页面的数据量。这样的存储过程可以显著减少网络传输的数据量,改善前端应用的响应时间,并减轻服务器的负载。下面...

    ASPNET存储过程自定义分页详解

    本教程将深入讲解如何利用存储过程实现自定义分页,以提高性能并优化用户体验。ASP.NET、C#、SQL以及DBA技能在此过程中扮演着核心角色。 首先,我们需要理解什么是存储过程。存储过程是预编译的SQL语句集合,存储在...

Global site tag (gtag.js) - Google Analytics