数据库取中间几条记录

学习了几种数据库取中间几条记录的方法,总结下:

一、在MSSQL,ACCESS中,可以使用关键字top:
--从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)
SELECT TOP n-m+1 * FROM Table WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))

--从TABLE表中取出第m到n条记录 (Exists版本)
SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not Exists
(Select * From (Select Top m-1 * From TABLE order by id) b Where b.id=a.id )
Order by id

以下两种方法都是实现提取数据库第20到第30条中间的十条记录的sql句子:

select top 10 * from 表名 where ID字段 not in (select top 20 ID字段 FROM 表名 order by ID字段)

行数假定由id决定(id最好是自动增加的序列)
删除前10行
delete from 表名 where id in(select top 10 id from 表名)

删除10-20
delete from 表名 where id in(select top 20 id from 表名)
and id not in(select top 10 id from 表名)

二、在MYSQL中,可以使用关键字LIMIT:
SELECT * FROM table [条件语句] LIMIT [offset,] rows
LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行

的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)

mysql> SELECT * FROM table LIMIT 10,15; // 检索记录行11-15

//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前5个记录行,相当于mssql的top 5