`
zhengpingling
  • 浏览: 13443 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

按页查询记录的存储结构

 
阅读更多
CREATE PROCEDURE `page`(
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;
分享到:
评论

相关推荐

    C++通讯录 添加记录 按名字查询记录 按电话号码查询记录 删除记录 修改记录 保存记录 读入记录 上一页与下一页 第一页与最后一页 退出文件等等

    这个系统具备多种功能,包括添加联系人记录、按名字或电话号码查询记录、删除记录、修改已有记录、保存记录到文件、从文件读取记录以及浏览记录的上一页、下一页、第一页和最后一页。下面我们将逐一探讨这些功能的...

    InnoDB记录存储结构1

    《InnoDB记录存储结构解析》 在MySQL的世界里,存储引擎是数据库管理的核心组件,它负责数据的存储和检索。其中,InnoDB是最常见的存储引擎,以其事务安全性和高性能著称。本文将深入探讨InnoDB的记录存储结构,...

    mdb库结构记录保存.rar

    标题中的“mdb库结构记录保存.rar”指的是一个压缩文件,其中包含了关于Microsoft Access数据库(mdb文件)的结构和记录保存的相关信息。mdb文件是Access数据库的默认格式,用于存储数据表、查询、报表、模块等...

    易语言mdb库结构记录保存

    在“易语言mdb库结构记录保存”这个主题中,我们主要探讨的是如何使用易语言来处理Microsoft Access的mdb数据库文件,包括获取数据库结构、保存记录以及与XML文件的交互。 首先,mdb文件是Microsoft Access数据库的...

    易语言mdb数据库结构记录保存源码

    标题中的"易语言mdb数据库结构记录保存源码"指的是一个易语言编写的程序,这个程序能够读取、操作mdb数据库的结构和记录,并且有能力将这些数据保存下来。在数据库编程中,保存数据库结构和记录通常涉及到数据库的...

    文件的逻辑结构与存储结构转换源代码

    把文件的逻辑结构转换成存储结构,设计便于顺序存取和直接存取的文件存储结构。 为了提高存储空间的利用...但这些存放逻辑记录的存储空间不是按链表的形式链接在一起的,而是采用索引表来指出逻辑记录存放的物理位置。

    DB2 存储结构,编目与数据库创建

    数据被分割成页并存储在磁盘上,每个页通常包含多个记录。DB2支持多种存储类型,如堆表存储(Heap)、索引组织表(Index-Organized Table, IOT)和分区表等。 1. **堆表存储**:这是最基础的存储方式,数据按照插入...

    数据结构主要书存储结构

    记录的存储结构包括位置技术、关系技术、计数技术等,它们决定了数据如何在物理块上分配和组织。记录的分配方式有连续分配、链接分配、簇集分配和索引分配,每种方式都有其适用场景和优缺点。例如,连续分配适合小...

    数据结构栈链式存储结构

    在实际编程中,我们通常使用链式存储来实现栈,因为这种结构提供了更大的灵活性。 栈的链式存储结构与数组存储相比,有其独特的优势。数组存储栈时,空间是连续的,预设大小一旦确定,难以动态扩展;而链式存储则...

    易语言源码易语言mdb库结构记录保存源码.rar

    6. 文件操作:在保存结构信息时,需要使用易语言的文件操作函数,如创建文件、写入文件等。 7. 用户界面:如果源码包含用户界面,可能会有事件驱动的编程模式,用户通过界面触发数据读取和保存的操作。 学习并理解...

    68 索引的页存储物理结构,是如何用B+树来实现的?l.pdf

    每一层索引页都存储了其子页的最小主键值和对应的页号,这种层级结构极大提高了检索效率。 3. B+树索引的查找过程 当执行一个根据主键查找的查询时,搜索将从B+树的根节点开始。在每个索引页中,算法通过二分查找来...

    MySQL数据结构-页结构.pdf

    总的来说,InnoDB的数据页结构优化了数据的存储和查询,通过Page Directory加速了在页内查找特定记录的过程,而User Records的链表设计则允许灵活的数据插入和删除操作。理解这些数据结构对于优化MySQL数据库的性能...

    宿舍管理查询系统(数据结构)

    - 查询操作:实现各种查询功能,如按宿舍号查找、按学生姓名查找等,这涉及到遍历数据结构的算法。 - 插入和删除操作:如学生入住、退宿的处理,需要考虑如何高效地修改数据结构。 - 文件操作:保存和读取数据到磁盘...

    易语言源码mdb库结构记录保存源码.rar

    压缩包内的"mdb库结构记录查询及保存库结构到XML.e"是易语言的工程文件,其中包含了实现这一功能的源代码。通过这个程序,用户可以读取mdb文件的结构信息,然后将其转换成XML格式,XML是一种结构化数据的通用表示...

    PostgreSQL 存储体系结构

    ### PostgreSQL 存储体系结构详解 #### 一、概述 PostgreSQL是一款开源的、功能全面的关系型数据库管理系统,因其强大的特性和灵活性而受到广泛好评。本文档将通过一系列的图片和示例,深入探讨PostgreSQL的内部...

    5盛放记录的大盒子 —— InnoDB 数据页结构(1).md

    在深入探讨InnoDB数据页的结构之前,我们需要了解InnoDB存储引擎中“页”的概念。InnoDB使用页作为存储空间的基本单位,一个页的大小通常是16KB。InnoDB设计了多种类型的页,用以存放不同数据和信息,例如表空间头部...

    Oracle的数据存储结构

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它的数据存储结构是理解其高效运作的基础。在Oracle中,数据被组织成逻辑和物理两层结构,以实现高效的数据管理和检索。 首先,我们从逻辑结构的角度来...

    线性表的链式存储结构

    线性表的链式存储结构在计算机科学中是一种常见的数据结构,它用于组织和操作一组具有线性顺序的元素。在这种结构中,每个元素都称为节点,每个节点包含数据和指向下一个节点的引用。链式存储与数组不同,因为数组中...

Global site tag (gtag.js) - Google Analytics