原創聲明:本文為作者原創,未經允許不得轉載,經授權轉載需注明作者和出處
在前面的例子中我們查詢數據都是有多少返回多少。但是在實際生產環境中,這樣做是不可取的。因為demo中我們的數據只要10條、20條,但是在生產環境中,我們的數據可能就是10萬條、20萬條。試問這么多數據如果一次性返回會造成什么后果?首先,我們查詢數據要很長時間。然后,通過返回給前端又要很長時間,關鍵是,那么多的數據返回給客戶端,如果客戶端配置差一點,好了可能好不容易等到數據來了,結果內存不足,客戶端炸了。總之,這樣會造成非常不好的客戶體驗。所以呢,我們需要把數據庫中的數據分成一頁一頁的,每次只返回一頁,客戶端來控制它想獲取的頁數也每頁多少條。比如前幾章中學生表我們每次返回兩條,分五頁返回:
SELECT * FROM student LIMIT 0,2;
SELECT * FROM student LIMIT 2,2;
SELECT * FROM student LIMIT 4,2;
.
.
.
后面的依次類推。
可以看出,分頁,主要是用了LIMIT關鍵字。這個關鍵字是這樣的:LIMIT 開始位置,查詢條數,
比如LIMIT 0,2說明是從第一條開始查詢(下標都是由0開始),查詢兩條,那么返回的結果就是第一條和第二條。我們可以吧這個看做是一頁,那么下一頁就是第三條和第四條了,那就是LIMIT 2,2。
LIMIT也可以和我們上述的其它語句一起結合使用,并且一定是放在最后面的,比如:
SELECT * FROM student WHERE name like '%妖怪%' LIMIT 0,2;
如果這樣就會報錯啦:
SELECT * FROM student LIMIT 0,2 WHERE name like '%妖怪%';
說的是語法錯誤。