SQL limit(分頁)

1.limit使用

limit參數,第一個參數:從哪兒開始查;第二個參數:查幾條html

  • i : 爲查詢結果的索引值(默認從0開始);
  • n : 爲查詢結果返回的數量

 

 -- 從3開始 取 3 條 SELECT * from employee LIMIT 3,3;mysql

 

 LIMIT 0,3   linux

 

 

2.分頁思路

下面是幾種limit的方法:原則看看下面幾個例子應該就懂了sql

在數據庫中不少地方都會用到,好比當你數據庫查詢記錄有幾萬、幾十萬時使用limit查詢效率很是快,只須要查詢出你須要的數據就能夠了·不再用全表查詢致使查詢數據庫崩潰的狀況。數據庫

select * from Customer LIMIT 10;--檢索前10行數據,顯示1-10條數據
select * from Customer LIMIT 1,10;--檢索從第2行開始,累加10條id記錄,共顯示id爲2....11
select * from Customer limit 5,10;--檢索從第6行開始向前加10條數據,共顯示id爲6,7....15
select * from Customer limit 6,10;--檢索從第7行開始向前加10條記錄,顯示id爲7,8...16yii

示例:
1)查詢student的數據:
post

select * from studentgoogle

 

 查詢第一條數據spa

select * from student limit 13d

 

 查詢第二條數據

select * from student limit 1,1

 

反例

追加:

select * from Customer limit 10,5;--檢索從第10行開始向前加5條數據,共顯示id爲11,12...15

 

官方

1. SQL LIMIT子句簡介

要檢索查詢返回的行的一部分,請使用LIMITOFFSET子句。 如下說明了這些子句的語法:

 

 

本教程咱們將演示如何使用SQL LIMIT子句來限制SELECT語句返回的行數。

1. SQL LIMIT子句簡介

要檢索查詢返回的行的一部分,請使用LIMITOFFSET子句。 如下說明了這些子句的語法:

在這個語法中,

  • row_count肯定將返回的行數。
  • OFFSET子句在開始返回行以前跳過偏移行。 OFFSET子句是可選的。 若是同時使用LIMITOFFSET子句,OFFSET會在LIMIT約束行數以前先跳過偏移行。

在使用LIMIT子句時,使用ORDER BY子句確保返回的行按指定順序很是重要。

 

 

並不是全部數據庫系統都支持 LIMIT子句,所以, LIMIT子句僅在某些數據庫系統中可用,例如 MySQLPostgreSQLSQLite,Sybase SQL Anywhere和HSQLDB//原文出自【易百教程】,商業轉載請聯繫做者得到受權,非商業轉載請保留原文連接:https://www.yiibai.com/sql/sql-limit.html
1. SQL LIMIT子句示例
咱們將使用 示例數據庫中的 employees表來演示 LIMIT子句用法。

 

 如下語句返回employees表中按first_name列排序的全部行。

 

 執行上面查詢語句,獲得如下結果 -

 

 若是要只返回前5行,請使用LIMIT子句,如如下語句。

 

 執行上面查詢語句,獲得如下結果 -

 

 要跳過兩行並獲取接下來的五行,請使用LIMITOFFSET子句,如如下語句所示。

 

 結果以下圖所示 -

 

 若是使用的是MySQL,則可使用LIMIT OFFSET子句的較短形式。

 

 2. 使用SQL LIMIT獲取具備最高或最低值的前N行

可使用LIMIT子句獲取具備最高或最低值的前N行。 例如,如下聲明得到薪資最高的前五名員工。

 

 執行上面示例代碼,獲得如下結果 -

 

 

首先,ORDER BY子句按工資按降序對員工進行排序,而後LIMIT子句限制從查詢返回的五行。

爲了得到薪資最低的前五名員工,能夠按升序對員工進行排序。

3. 獲取具備第N個最高值的行

假設必須獲得公司薪水第二高的員工。請使用 LIMIT OFFSET子句,以下所示。

ORDER BY子句按工資降序對員工進行排序。 LIMIT 1 OFFSET 1子句從結果集中獲取第二行。

此查詢的假設是每一個員工都有不一樣的薪水。 若是有兩名員工擁有相同的最高薪水,那麼它將會失敗。 此外,若是有兩個或更多具備相同第二高薪的員工,則查詢只返回第一個。

要解決此問題,可使用如下語句首先得到第二高薪。

 

 

ORDER BY子句按工資降序對員工進行排序。 LIMIT 1 OFFSET 1子句從結果集中獲取第二行。

此查詢的假設是每一個員工都有不一樣的薪水。 若是有兩名員工擁有相同的最高薪水,那麼它將會失敗。 此外,若是有兩個或更多具備相同第二高薪的員工,則查詢只返回第一個。

要解決此問題,可使用如下語句首先得到第二高薪。

 

 執行上面示例代碼,獲得如下結果 -

 

 並將結果傳遞給另外一個查詢:

 

 結果以下所示 -

 

 若是使用子查詢,則能夠將兩個查詢組合到單個查詢中,以下所示:

 

 結果以下所示 -

 

 SQL LIMITOFFSET子句,這些子句用於限制查詢返回的行數。

 

延伸閱讀:https://www.runoob.com/sqlite/sqlite-limit-clause.html

      https://www.yiibai.com/sql/sql-limit.html

相關文章
相關標籤/搜索