用SQL如何查询第几条到第几条之间的数据?

用SQL如何查询第几条到第几条之间的数据?,第1张

不同的数据库,写法不一样。例如我要检索,第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、第一种很显然会比第二种慢,所以在使用的时候查询条件尽量不要有计算。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6824084.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存