不同的数据库,写法不一样。例如我要检索,第11条到第20条,MySQL数据库的最简单:
SELECT*FROM表LIMIT11,10
SQLServer的稍微折腾一些
SELECT
TOP10
top20.*
FROM
(
SELECT
TOP20
*
FROM
表
ORDERBY
排序字段DESC
)AStop20
ORDERBY
top20.排序字段ASC
结构化查询语言(StructuredQueryLanguage)简称SQL(发音:/ˈeskjuːˈel/"S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。
--从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-20delete 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,] rowsLIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。1、首先我们先来看一下查询语句的like优化,如下图所示,分别将百分号放在前面和后面。
2、百分号放在后面的查询更高效一些。
3、接下来我们在来看一下OR查询的效率,如下图所示,通过OR来查询两个条件的记录。
4、执行后看执行计划,我们看到这种OR查询的效率也不是很高。
5、如果想替换OR查询就可用Union All来代替,如下图所示,用两个单独的查询实现。
6、第一种很显然会比第二种慢,所以在使用的时候查询条件尽量不要有计算。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)