1. 程式人生 > 其它 >mysql與oracel實現類似於top的功能

mysql與oracel實現類似於top的功能

mysql的top用法需要藉助limit

limit在mysql中主要用於查詢語句中,對查詢結果進行分頁處理,例如有10000條資料,想要拿到前100條資料,就要使用limit對結果前100條分頁處理。

limit的格式

limit的引數有兩個,分兩種情況:

當只傳一個引數時,引數代表的是資料量;當傳兩個欄位時,第一個引數代表起始位置,第二個引數代表資料量。

select * from table_1 order by col limit 10
select * from table_1 order by col limit 5,10

上述按照欄位col排序查詢表table_1的資料,第一行代表查詢表table_1排名前10的資料;第二行代表查詢表table_1中排名除前五之外(不包括第五)的10條資料,即排名在6-15名的資料。故limit n)等價於(limit 0,n)

oracel的top用法需要建立虛列

rownum 是作為一個虛列存在於查詢語句中,代表的是行號。

select col1,col2 from (select col1,clol2,rownum rn from table1 where rownum<100) where rn<20 

oracel 不能直接進行分頁查詢或者直接排序的資料,必須先增虛列排序,再進行類似的分頁查詢。
所以若是需要進行特定排序,需要藉助row_number()over ...order by .. 等排序函式增加虛列以達到分頁查詢的目的。