使用 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...