首頁  >  文章  >  資料庫  >  mysql中limit的用法是什麼

mysql中limit的用法是什麼

青灯夜游
青灯夜游原創
2021-12-02 15:33:3780187瀏覽

在mysql中,limit關鍵字主要用來指定查詢結果從哪筆記錄開始顯示,總共顯示多少筆記錄;它有3種使用語法「LIMIT 初始位置,記錄數」、「LIMIT 記錄數”和“LIMIT 記錄數OFFSET 初始位置”。

mysql中limit的用法是什麼

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

當資料表中有上萬個資料時,一次查詢出表中的全部資料會降低資料回傳的速度,同時對資料庫伺服器造成很大的壓力。這時就可以用 LIMIT 關鍵字來限制查詢結果傳回的條數。

LIMIT 是 MySQL 中的一個特殊關鍵字,用來指定查詢結果從哪筆記錄開始顯示,總共顯示多少筆記錄。

LIMIT 關鍵字有 3 種使用方式,分別是指定初始位置、不指定初始位置、與 OFFSET 組合使用。

指定初始位置

LIMIT 關鍵字可以指定查詢結果從哪筆記錄開始顯示,顯示多少筆記錄。

LIMIT 指定初始位置的基本語法格式如下:

LIMIT 初始位置,记录数

其中,「初始位置」表示從哪筆記錄開始顯示;「記錄數」表示顯示記錄的條數。第一筆記錄的位置是 0,第二筆記錄的位置是 1。後面的紀錄依序類推。

注意:LIMIT 後的兩個參數必須都是正整數。

範例 1

在 tb_students_info 表中,使用 LIMIT 子句傳回從第 4 個記錄開始的行數為 5 的記錄,SQL 語句和執行結果如下。

mysql> SELECT * FROM tb_students_info LIMIT 3,5;
+----+-------+---------+------+------+--------+------------+
| id | name  | dept_id | age  | sex  | 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)

由結果可以看到,該語句傳回的是從第 4 筆記錄開始的之後的 5 筆記錄。 LIMIT 關鍵字後的第一個數字「3」表示從第 4 行開始(記錄的位置從 0 開始,第 4 行的位置為 3),第二個數字 5 表示傳回的行數。

不指定初始位置

LIMIT 關鍵字不指定初始位置時,記錄會從第一筆記錄開始顯示。顯示記錄的條數由 LIMIT 關鍵字指定。

LIMIT 不指定初始位置的基本語法格式如下:

LIMIT 记录数

其中,「記錄數」表示顯示記錄的條數。如果「記錄數」的值小於查詢結果的總數,則會從第一筆記錄開始,顯示指定條數的記錄。如果「記錄數」的值大於查詢結果的總數,則會直接顯示查詢出來的所有記錄。

範例 2

顯示 tb_students_info 表格查詢結果的前 4 行,SQL 語句和執行結果如下。

mysql> SELECT * FROM tb_students_info LIMIT 4;
+----+-------+---------+------+------+--------+------------+
| id | name  | dept_id | age  | sex  | 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 筆記錄,說明「LIMIT 4」限制了顯示條數為 4。

範例 3

顯示 tb_students_info 表格查詢結果的前 15 行,SQL 語句和執行結果如下。

mysql> SELECT * FROM tb_students_info LIMIT 15;
+----+--------+---------+------+------+--------+------------+
| id | name   | dept_id | age  | sex  | 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 |
|  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 |
|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
| 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
+----+--------+---------+------+------+--------+------------+
10 rows in set (0.26 sec)

結果中只顯示了 10 筆記錄。雖然 LIMIT 關鍵字指定了顯示 15 筆記錄,但查詢結果中只有 10 筆記錄。因此,資料庫系統就將這 10 筆記錄全部顯示出來。

帶一個參數的 LIMIT 指定從查詢結果的首行開始,唯一的參數表示傳回的行數,即「LIMIT n」與「LIMIT 0,n」傳回結果相同。帶有兩個參數的 LIMIT 可傳回從任何位置開始指定行數的資料。

LIMIT和OFFSET組合使用

#LIMIT 可以和OFFSET 組合使用,語法格式如下:

LIMIT 记录数 OFFSET 初始位置

參數和LIMIT語法中參數意義相同,「初始位置」指定從哪筆記錄開始顯示;「記錄數」表示顯示記錄的條數。

範例 4

在 tb_students_info 表中,使用 LIMIT OFFSET 傳回第 4 筆記錄開始的行數為 5 的記錄,SQL 語句和執行結果如下。

mysql> SELECT * FROM tb_students_info LIMIT 5 OFFSET 3;
+----+-------+---------+------+------+--------+------------+
| id | name  | dept_id | age  | sex  | 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)

由結果可以看到,該語句傳回的是從第 4 筆記錄開始的之後的 5 筆記錄。即「LIMIT 5 OFFSET 3」意指取得從第 4 筆記錄開始的後面的 5 筆記錄,和「LIMIT 3,5」回傳的結果相同。

【相關推薦:mysql影片教學

#

以上是mysql中limit的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn