limit屬于mysql的方言,用來限定查詢結(jié)果的起始行,以及總行數(shù)。例如:select * from emp limit 3,4,表示從emp表中第4條記錄開始,查詢4條記錄。如圖1-1所示:
圖1-1 使用limit查詢
limit子句后面的兩個數(shù)字有如下意義:
- 第一個數(shù)字:表示查詢結(jié)果的起始行,從0開始,0表示從第一行開始??;
- 第二個數(shù)字:表示一共查詢幾條記錄。
limit子句常用來做分頁查詢,分頁查詢就是根據(jù)需要每次只返回需要的數(shù)據(jù),而不用每次都從數(shù)據(jù)庫中全部把數(shù)據(jù)提取出來,這樣可以降低程序與數(shù)據(jù)庫之間的數(shù)據(jù)傳送量,并且可以提高程序的性能。例如有這樣一個需求,要求一頁只能顯示5條數(shù)據(jù),現(xiàn)在查詢第三頁的數(shù)據(jù),對應(yīng)的SQL語句如下所示:
- select * from emp limit 10,5
分析:一頁顯示5條數(shù)據(jù),那么第三頁的第一條數(shù)據(jù)是第11條數(shù)據(jù),又因為limit的第一個數(shù)字從0開始,所以是10,顯示5條數(shù)據(jù)所以limit的第二個數(shù)字是5。如圖1-3所示:
圖1-3 分頁查詢
圖1-3中,只查詢了4條數(shù)據(jù),而我們的語句是查詢5條數(shù)據(jù),出現(xiàn)這樣的原因是因為emp表中有14條數(shù)據(jù),所以在第三頁中只有四條數(shù)據(jù)。
我們在進行分頁查詢時,limit的第一個數(shù)字可以通過以下公式獲得:
- (當(dāng)前頁-1)*每頁記錄數(shù),例如查詢第三頁數(shù)據(jù),該公式就是:(3-1)*5=10。
本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/javaee