Mysql limit分頁語句用法

2021-07-11 15:06:02 字數 1985 閱讀 3366

與oracle和ms sqlserver相比,mysql的分頁方法簡單的讓人想哭。

--

語法:select

*from

table limit [

offset,

] rows |

rows offset offset

--舉例:

select

*from

table limit5; --

返回前5行

select

*from

table limit0,5; --

同上,返回前5行

select

*from

table limit5,10; --

返回6-15行

當乙個查詢語句偏移量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 limit10000,1) limit

10;

語法:

select

topnumber

|percent column_name(s) from table_name;

舉例:

1. 選取表中前2條記錄

select

top2* from

table;

2. 選取表中50%的記錄

select

top50 persentfrom

table;

3. 從資料庫中檢索第10—20條記錄

select

top10*

from

testtable

where (id notin(

select

top20id

from

testtable

order

byid))

order

by id;

語法:

select column_name(s) from table_name where rownum <=

number

舉例:1. 選取前5條記錄

select * from persons whererownum<= 5

分頁:

--

從資料庫表中第m條記錄開始檢索n條記錄

select

*from (select rownum r,t1.*

from 表名稱 t1 where rownum < m +

n) t2

where t2.r >=m--

如:從表sys_option(主鍵為sys_id)中從第10條記錄開始檢索20條記錄,語句如下

select

*from (select rownum r,t1.*

from sys_option where rownum <

30) t2

where t2.r >=

10

mysql limit分頁 SQL語句模糊查詢

在資料庫中經常要取表中記錄中間的記錄,在sql語句中使用limit 可以實現此功能select from a limit 5,20理解 從表中的第五行資料開始取資料,一共取出20條 這個用法可以實現sql語句分頁,只需要傳進頁數和每條頁數兩個引數即可以實現分頁模糊查詢語句關鍵字一般使用 llike ...

Mysql limit分頁優化

例如 優化後的子查詢語句還是需要獲取offset rows條資料,然後扔掉前offset條資料,但是只查詢了id乙個字段,對於資料量大的表來說,優化很多,而且,在優化後的語句裡可以使用byname的覆蓋索引 但個人認為更快的情況下 還是要在程式裡先計算出id的值 利用 select from tab...

mysql limit分頁優化方法

mysql的優化是非常重要的。其他最常用也最需要優化的就是limit。mysql的limit給分頁帶來了極大的方便,但資料量一大的時候,limit的效能就急劇下降。同樣是取10條資料 select from yanxue8 visit limit 10000,10 和 select from yan...