MySQL 限制查詢結果的記錄數

2021-10-03 20:37:34 字數 2916 閱讀 5447

使用 mysql select 語句時往往返回的是所有匹配的行,有些時候我們僅需要返回第一行或者前幾行,這時候就需要用到 mysql limt 子句。

基本的語法格式如下:

[《位置偏移量》,]

《行數》

limit 接受乙個或兩個數字引數。引數必須是乙個整數常量。如果給定兩個引數,第乙個引數指定第乙個返回記錄行的偏移量,第二個引數指定返回記錄行的最大數目。

第乙個引數「位置偏移量」指示 mysql 從哪一行開始顯示,是乙個可選引數,如果不指定「位置偏移量」,將會從表中的第一條記錄開始(第一條記錄的位置偏移量是 0,第二條記錄的位置偏移量是 1,以此類推);第二個引數「行數」指示返回的記錄條數。

顯示 tb_students_info 表查詢結果的前 4 行,輸入的 sql 語句和執行結果如下所示。

mysql> select * from tb_students_info limit 4;+

----+--

-----+

----

-----+

------+

------+

----

----+--

----

------+

| id | name | dept_id | age | *** | height | login_date |+--

--+-------

+---------

+------+--

----+--

------+

----

----

----+|

1| dany |1|

25| f |

160|

2015-09

-10||

2| green |3|

23| f |

158|

2016-10

-22||

3| henry |2|

23| m |

185|

2015-05

-31||

4| jane |1|

22| f |

162|

2016-12

-20|+

----+--

-----+

----

-----+

------+

------+

----

----+--

----

------+

4 rows in set (

0.00 sec)

由結果可以看到,該語句沒有指定返回記錄的「位置偏移量」引數,顯示結果從第一行開始,「行數」引數為 4,因此返回的結果為表中的前 4 行記錄。

若指定返回記錄的開始位置,則返回結果為從「位置偏移量」引數開始的指定行數,「行數」引數指定返回的記錄條數。

在 tb_students_info 表中,使用 limit 子句返回從第 4 條記錄開始的行數為 5 的記錄,輸入的 sql 語句和執行結果如下所示。

mysql> select * from tb_students_info limit 3,5

;+----+--

-----+

----

-----+

------+

------+

----

----+--

----

------+

| id | name | dept_id | age | *** | height | login_date |+--

--+-------

+---------

+------+--

----+--

------+

----

----

----+|

4| jane |1|

22| f |

162|

2016-12

-20||

5| jim |1|

24| m |

175|

2016-01

-15||

6| john |2|

21| m |

172|

2015-11

-11||

7| lily |6|

22| f |

165|

2016-02

-26||

8| susan |4|

23| f |

170|

2015-10

-01|+

----+--

-----+

----

-----+

------+

------+

----

----+--

----

------+

5 rows in set (

0.00 sec)

由結果可以看到,該語句指示 mysql 返回從第 4 條記錄行開始的之後的 5 條記錄,第乙個數字「3」表示從第 4 行開始(位置偏移量從 0 開始,第 4 行的位置偏移量為 3),第二個數字 5 表示返回的行數。

所以,帶乙個引數的 limit 指定從查詢結果的首行開始,唯一的引數表示返回的行數,即「limit n」與「limit 0,n」等價。帶兩個引數的 limit 可返回從任何位置開始的指定行數的資料。

返回第一行時,位置偏移量是 0。因此,「limit 1,1」返回第 2 行,而不是第 1 行。

注意:mysql 5.7 中可以使用「limit 4 offset 3」,意思是獲取從第5條記錄開始的後面的3條記錄,和「limit 4,3」返回的結果相同。

sql 查詢記錄數結果集某個區間內記錄

以查詢前20到30條為例,主鍵名為id 方法一 先正查,再反查 select top 10 from select top 30 from tablename order by id asc a order by id desc 方法二 使用left join select top 10 a.fro...

mysql得到查詢結果的同時統計查詢結果的數目

做一些資料庫查詢,不僅希望得到要查詢的結果,還希望方便地統計一下查詢結果中有多少條記錄。我通常的做法是 q select from fromtable where where limit start,pagesize r mysql query q q select count from fromt...

選擇字段 限制記錄數 排序記錄

在mongodb中,選擇欄位又叫投影,表示僅選擇所需要欄位的資料,而不是選擇整個文件欄位的資料。如果某個文件有5個字段,但只要顯示3個字段,那麼就只選擇3個字段吧,這樣做是非常有好處的。find 方法在mongodb查詢文件中此方法接收的第二個可選引數是要檢索的字段列表。在mongodb中,當執行f...