找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1197|回复: 0
打印 上一主题 下一主题

php mssql 数据库分页SQL语句

[复制链接]

2617

主题

2617

帖子

7789

积分

论坛元老

Rank: 8Rank: 8

积分
7789
跳转到指定楼层
楼主
发表于 2018-2-14 09:22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库的交互,如果数据库中数据量很大的话,一次检索所有的记录,会占用系统很大的资源,因此我们常常采用,需要多少数据就只从数据库中取多少条记录,即采用分页语句。根据自己使用过的内容,把常见数据库Sql Server,Oracle和MySQL的分页语句,从数据库表中的第M条数据开始取N条记录的语句总结如下:
  SQL Server
  从数据库表中的第M条记录开始取N条记录,利用Top关键字:注意如果Select语句中既有top,又有order by,则是从排序好的结果集中选择:
  SELECT *
  FROM ( SELECT Top N *
  FROM (SELECT Top (M + N - 1) * FROM 表名称 Order by 主键 desc) t1 ) t2
  Order by 主键 asc
实例:
select * from ( select TOP pagesize * FROM ( SELECT TOP pagesize*cureentpage * from user_table ORDER BY id ASC ) as aSysTable ORDER BY id DESC ) as bSysTable ORDER BY id ASC
  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
  SELECT *
  FROM ( SELECT TOP 20 *
  FROM (SELECT TOP 29 * FROM Sys_option order by sys_id desc) t1) t2
  Order by sys_id asc
  Oralce数据库
  从数据库表中第M条记录开始检索N条记录
  SELECT *
  FROM (SELECT ROWNUM r,t1.* From 表名称 t1 where rownum = M
  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
  SELECT *
  FROM (SELECT ROWNUM R,t1.* From Sys_option where rownum = 10
  MySQL数据库
  My sql数据库最简单,是利用mysql的LIMIT函数,LIMIT [offset,] rows从数据库表中M条记录开始检索N条记录的语句为:
  SELECT * FROM 表名称 LIMIT M,N
  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
  select * from sys_option limit 10,20
            
            
您可能感兴趣的文章:
  • php执行sql语句的写法
  • php mssql 分页SQL语句优化 持续影响
  • PHP 批量删除 sql语句
  • PHP+MySQL 手工注入语句大全 推荐
  • PHP学习之SQL语句快速入门
  • PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
  • PHP执行批量mysql语句的解决方法
  • PHP mysqli 增强 批量执行sql 语句的实现代码
  • PHP之Mysql常用SQL语句示例的深入分析
  • PHP+Mysql实现多关键字与多字段生成SQL语句的函数
  • PHP格式化MYSQL返回float类型的方法
  • PHP实现SQL语句格式化功能的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端