最近在寫自動化測試方面的事,好久沒有使用數據庫,一時手生,居然忘了分頁查村語句的寫法,趕忙跑去找了找,本來是很小的一個知識點,就因爲不常用,導致手生,所以說很多看似方便的工具,或許確實可以方便很多開發中的問題,但是他們也會讓我們逐步的喪失能力,記得前一陣子,看到說美國是一羣有想法的人領導着一羣沒有想法的人,很是受教。廢話不多說,總計一下,一些常見的數據庫的分頁查詢的方法。
mySQL:
mySQL數據庫內部提供了一個LIMIT函數,一般只需要直接放在查詢語句後面即可。
LIMIT可以用來限制查詢(SELECT)語句返回過來的數據,他一般有一個或兩個參數,如果給出兩個參數,第一個參數指定返回的第一行在所有數據中的位置,從0開始(不是1),第二個參數是指定返回最多的行數。
例如:
SELECT * FROM table WHERE name=cter LIMIT 5; 返回前五行數據
SELECT * FROM table WHERE name=cter LIMIT 0 ,5; 返回前5行數據
SELECT * FROM table WHERE name=cter LIMIT 5,10; 返回第5行到第十行的數據
ORCALE:
ORCALE數據庫實現分頁查詢可以使用row_number()函數或者使用rownum虛列兩種方法
第一種:
SELECT * FROM(SELECT t.* row_number() over(order by t1.id) rowno from TABLE) WHERE rowno between 10 and 20;
第二種:
SELECT * FROM (SELECT t.*, rownum as rowno FROM TABLE1) WHERE rowno BETWEEN 10AND 20;
這兩種方法比較,是第二種更好一些,因爲不用order by語句,可以提高查詢速度。