萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> limit Mysql查詢語句使用方法

limit Mysql查詢語句使用方法

limit在分頁時可以起到作用但是要如何來使用limit呢,今天我們一起來看看mysql中limit用法及在使用limit分頁時的一些細節與優化。

在我看來,limit應該是我們在mysql中最經常使用到的方法了吧,下面我們就來講解一下limit的作用和如何正確地使用該方法。

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句可以被用於強制 SELECT 語句返回指定的記錄數。LIMIT 接受一個或兩個數字參數。參數必須是一個整數常量。如果給定兩個參數,第一個參數指定第一個返回記錄行的偏移量,第二個參數指定返回記錄行的最大數目。初始記錄行的偏移量是 0(而不是 1): 為了與 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。


mysql> SELECT * FROM table LIMIT 5,10; // 檢索記錄行 6-15

//為了檢索從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個參數為 -1:


mysql> SELECT * FROM table LIMIT 95,-1; // 檢索記錄行 96-last.

//如果只給定一個參數,它表示返回最大的記錄行數目:


mysql> SELECT * FROM table LIMIT 5; //檢索前 5 個記錄行

//換句話說,LIMIT n 等價於 LIMIT 0,n。

如何優化limit

當一個查詢語句偏移量offset很大的時候,如select * from table limit 10000,10 , 最好不要直接使用limit,而是先獲取到offset的id後,再直接使用limit size來獲取數據。效果會好很多。

如:
select * From customers Where customer_id >=(
select customer_id From customers Order By customer_id limit 10000,1
) limit 10;

有興趣可以看查limit分頁優化教程:http://www.111cn.net/database/mysql/50921.htm

copyright © 萬盛學電腦網 all rights reserved