產品操作MySQL第6篇 – 數(shù)據(jù)過濾-LIMIT子句

MYSQL


本資料為產品崗位作為日常工作參考,語言口語化

At 2019/4/26 By David.Yang


介紹下重量級子句LIMIT



我們在逛馬蜂窩的時候,多少會看看游記攻略什么的,

你會發(fā)現(xiàn)馬蜂窩一頁給你10條左右的游記內容,你要繼續(xù)看的話點分頁,

會給你下20條數(shù)據(jù)。


想象如果沒有分頁呢?


已下載給你百萬千萬篇游記,你會不會瘋了?


你不瘋馬蜂窩的數(shù)據(jù)庫也得瘋。


那一頁一頁的數(shù)據(jù)返回固定的游記數(shù)量,是怎么實現(xiàn)的呢?


這就是我們本篇的主角,LIMIT。


LIMIT在SELECT語句當中是構成查詢的子句,用來約束返回結果集的行數(shù)。


LIMIT接受兩個參數(shù),兩個參數(shù)都為0或正整數(shù)。


你每次拉分頁時是不是有第幾頁和每頁10篇這兩個參數(shù)?


他們跟LIMIT子句的參數(shù)有關。


LIMIT子句講解

LIMIT字句語法

SELECT

? ? column1, column2, ...

FROM

? ? table_name

LIMIT OFFSET, SIZE;


? OFFSET 指定返回第一行的偏移量

? SIZE 指定返回行數(shù)最大值


看圖說話


默認參數(shù)

當你的LIMIT只有一個參數(shù)時,也會發(fā)生作用,這唯一的參數(shù)將從結果集的開頭返回最大的行數(shù)。


SELECT

? ? column1, column2, ...

FROM

? ? table_name

LIMIT SIZE;


等價于:


SELECT

? ? column1, column2, ...

FROM

? ? table_name

LIMIT 0, SIZE;


LIMIT獲取前SIZE行數(shù)據(jù)

控制LIMIT只賦予SIZE一個參數(shù)

SELECT

? ? column1, column2, ...

FROM

? ? table_name

LIMIT SIZE;


比如,查找前5個學生


SQL

SELECT

*

FROM

students

LIMIT 5;


得到前五行的學生


以上SQL等價于

SELECT

?????? *

FROM

?????? students

LIMIT 0, 5;


LIMIT與ORDER BY子句的配合使用

是,有了LIMIT我們是能夠分頁看游記了,

但是吧,我想看最新的,

我還想看最熱門的,有時候吧還想看游記出發(fā)時間比較近,


還想看…


“滾”



但其實是可以實現(xiàn)的???


我們這時候就需要配合使用ORDER BY,排序字句了。


LIMIT 一般都會配合ORDER

BY子句使用,

ORDER BY子句將根據(jù)指定的條件對結果集實現(xiàn)排序,

然后通過LIMIT子句實現(xiàn)返回。


ORDER BY語法

ORDER BY column DESC/ASC


ORDER BY 后接需要排序的字段,表示按什么排序

DESC 降序排序,由大到小

ASC 升序排序,由小到大


舉個例子,比如


??


--按年齡找到前5的學生,使用此排序條件


SQL

SELECT

?????? *

FROM

?????? students

ORDER BY ageDESC

LIMIT 5;



??


--找到年齡最小的5名同學


SQL

SELECT

?????? *

FROM

?????? students

ORDER BY age ASC

LIMIT 5;




看,最小的郭襄才6歲呀。


使用LIMIT實現(xiàn)第N個最高值的獲取

在業(yè)務分析當中,通常需要在結果集當中獲得第N個最高值,

比如成績第二,銷量第五,我們可以通過LIMIT來實現(xiàn)。


步驟:

- 按照關鍵字段進行目標排序,降序

- 使用LIMIT進行行獲取


舉個例子


??


我們要獲取學生當中年齡第2大的學生


- 第一個任務,將學生按照年齡進行排序(降序)

SELECT

*

FROM

students

ORDER BY age DESC;



- 第二個任務,在排序的結果集當中,查找第二年齡大的學生,

使用LIMIT獲取學生。


既然要的是第二年齡大的學生,說明是從年齡從大到小的學生中獲取年齡第二大的學生。

偏移量為1,獲取一行。

SELECT

*

FROM

students

ORDER BY age DESC

LIMIT 1, 1;



是他?。?/p>


本篇完結。


你現(xiàn)在多少理解LIMIT子句的特性,也改回使用了吧,

并且還捎帶學了點關于排序的內容哦,

后面講排序也就會更容易接受了。


Bye Bye.

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容