数据库分页

1,MySql:
    MySql比较简单,提供了limit函数
    一般指需要直接写到sql语句后面就行。
    1,limit子句可以用来限制select语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数,第一个参数指定返回的第一行在所有数据中的位置,从0开始(Not 1),第二个参数指定最多返回行数。
    No1:select * from table where ... limit 10;返回前10行
    No2:select * from table where... limit 0,10;返回前10行
    No3: select * from table where ...limit 10,20;返回第10-20行数据
 
2,SQL Server
    1,方案1(NOT IN和SELECT TOP)效率次之:
        SELECT TOP 页大小 *
        FROM tableName
        WHERE ( id NOT IN
                (
                    SELECT TOP (页大小*(页数-1)) id
                    FROM tableName
                    ORDER BY id
                ) 
        )
        ORDER BY id
    2,方案2 (id大于多少和SELECT TOP分页):
    3,方案3 (SQL游标):
    4,方案4 (ROW_NUMBER() OVER):
        SELECT * FROM (
            SELECT *,row_NUMBER() OVER(ORDER BY id) AS rowNum FROM USER1 AS a
            WHERE name LIKE '%zhan%'
        ) AS b
        WHERE rowNum BETWEEN pageSize*(pageIndex-1) AND pageSize*pageIndex
        ORDER BY id DESC
 
3,Oracle
   Oracle中没有limit关键字,但是有rownum字段
rownum是一个伪例,是oracle系统自动为查询返回结果的每行分配的编号,第一行为1,第二行为2,以此类推。 
    eg:
    select * from   (select e.* , rownum r from (select * from emp order by sal desc) e )e1 
    where e1.r > 21 and e1.r <= 40
    
 
 
 
 
 
 
 
 
 
 
 
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值