通常我們在使用sql語句中,都是一些比較簡單的用法,下面我透過一些範例來說一下,在Mysql中limit的一些進階使用方法。
mysql limit效率:
select `id`,`title`,`describle`,`created` from myvbga_table where click = xxx limit offset, limit; //總結:如果沒有blob/text字段,單行記錄比較小,可以把limit 設大點,會加快速度。
limit offset值比較小:
select `id`,`title`,`describle`,`created` from vbga_table limit 10,10 //多次運行,時間保持在0.0004-0.0005之間
Select `id`,`title`,`describle`,`created` From vbga_table Where click >=(Select click From vbga_table Order By click limit 10,1 ) limit 10 //多次運行,時間維持在0.0005-0.0006之間,主要是0.0006
limit offset值比較大:
select `id`, `title`,`describle`,`created` from vbga_table limit 10000,10 //多次運行,時間保持在0.0187左右
Select `id`,`title`,`describle`,`created` From vbga_table Where click >=(Select click From vbga_table Order By click limit 10000,1) limit 10 //多次運行,時間保持在0.0061左右,只有前者的1/3。可以預期offset越大,後者越優。
Mysql的limit用法:
LIMIT 子句可以用來強制SELECT 語句傳回指定的記錄數
SELECT `id`,` title`,`describle`,`created` FROM vbga_table LIMIT [offset,] rows | rows OFFSET offset
mysql> SELECT `id`,`title`,`describle`,`created` FROM vb_table LIMIT 51_table LIMIT 5 ,10; // 擷取記錄行6-15 //為了擷取從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個參數為-1:
mysql> SELECT `id`,`title`,`describle`,`created` FROM vbga_table LIMIT 95,-1; // 檢索記錄行96-last. //如果只給定一個參數,它表示傳回最大的記錄行數目:
mysql> SELECT `id`,`title`,`describle`,`created` FROM vbga_table LIMIT 5; //檢索前5 個記錄行//換句話說,LIMIT n 等價於LIMIT 0 ,n。
mysql limit 子查詢用法範例:
select `id`,`title`,`describle`,`created` from vbga_table where id in (select t. id from (select `id`,`title`,`describle`,`created` from vbga_table limit 10)as t)
mysql limit offset用法:
#mysql limit offset用法:
# SELECT keyword FROM `zjoe_table` WHERE advertiserid='59' order by keyword LIMIT 2 OFFSET 1; //例如這個SQL ,limit後面跟的是2個數據,offset後面是從第1條開始讀取~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~
SELECT `keyword` FROM `zjoe_table` WHERE advertiserid='59' ORDER BY keyword LIMIT 2 ,1; //而這個SQL,limit後面是從第2條開始讀,讀取1條訊息。mysql預存程序中limit變數用法
CREATE PROCEDURE Getble_table(_id int,_limit int)BEGINPREPARE s1 FROM 'SELECT `id`,`title`,`describle`,`created` FROM ble_table WHERE Cityid=? ORDER BY sendtime DESC LIMIT ?';set @a=_id;以上是mysql中limit的一些進階用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!