SQL极限函数limit()详解

先来个开心的图片大家放松下哈。

SQL极限函数limit()详解_第1张图片

老外,放开那头驴。。。

在《SQL语法顺序与执行顺序》中的时候有朋友提到过limit。小编整理了下limit的含义、用法、注意事项向大家展示下limit在SQL中的方方面面。

limit含义:

limit英语中的含义是限制,限定的意思。小日本曾上映过一个电影就是叫limit是由漫画改编的电影,剧情很变态,但不可否认小日本由于地狭人稠的原因,在观念上的资源危机意识还是很强的哈。额,话题扯远了,咱们继续聊咱们的sql。

limit在SQL中的用法:

首先limit是属于mysql的语法,用来从某个值开始,取出之后的N条数据的语法。

limit有两种方式。

1)limit a,b 后缀两个参数的时候(/*参数必须是一个整数常量*/),其中a是指记录开始的偏移量,b是指从第a+1条开始,取b条记录。

2)limit b 后缀一个参数的时候,是直接取值到第多少位,类似于:limit 0,b 。

实例:

select * from persons limit 0 , 4; 解释:起点位置为0,开始查询,返回4条数据

SQL极限函数limit()详解_第2张图片

select * from persons limit 4 , 4;解释:起点为4 ,开始查询,返回4天数据。

SQL极限函数limit()详解_第3张图片

注意事项:

*1) limit 是不支持SQL server的,当然用TOP也凑合着用。小编发个简单的例子大家理解下,

MYSQL中的

select id from table limit 4,4

类似于 SQL server 中的

select top 4 id from table

where id not in (select top 4 id from table )

(例子举得比较粗糙但得出的结果一样,希望大家理解哈)

*2) limit 所后缀的参数必须是整数常量。

*3) 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

*4) 百度上说:(为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:) 但小编测试的时候试了试发现limit不能有负数,-1更不行,有兴趣的朋友们可以自己手动测试下哈。

*5) 从语句的执行顺序上讲,select 是先执行order by 进行排序,后再limit来返回记录数的。

你可能感兴趣的:(SQL极限函数limit()详解)