mysql之limit用法和orcale的rownum用法
mysql之limit用法
1.mysql>SELECT*FROMtableLIMIT5,10;//檢索記錄行6-15 #從6行開始檢索,檢索10行的資料
2.//為了檢索從某一個偏移量到記錄集的結束所有的記錄行,可以指定第二個引數為-1:
mysql>SELECT*FROMtableLIMIT95,-1;//檢索記錄行96-last. # 從96行開始一直到最後一行資料
3.//如果只給定一個引數,它表示返回最大的記錄行數目:
mysql>SELECT*FROMtableLIMIT5;//檢索前5個記錄行 (1到5行資料)
//換句話說,LIMITn等價於LIMIT0,n。
orcale的rownum用法
SELECT * FROM T_P_AB_PORT where rownum=1;--查詢第一行
SELECT * FROM T_P_AB_PORT where rownum=3; --其他無法查詢 等號不能單獨使用(除=1外)
SELECT * FROM T_P_AB_PORT where rownum<=3;--查詢1-3行 小於號可以使用(還可以合等於一起使用)
SELECT * FROM T_P_AB_PORT where rownum>=3;--大於號無法使用
原因:由於rownum是一個總是從1開始的偽列
解決方法:如果想找到從第二行記錄以後的記錄,可使用以下的子查詢方法
SELECT * FROM (SELECT t.*,rownum no FROM T_P_AB_PORT t) where no >=3;
查區間比如 5到10條資料
1:單表查詢
SELECT * FROM (SELECT t.*,ROWNUM r FROM TABLE t WHERE ROWNUM <= pageNumber*pageSize) WHERE r >(pageNumber)*pageSize
SELECT * FROM (SELECT t.*,rownum no FROM T_P_AB_PORT t where rownum<=10) where no >=5;
雙表查詢
SELECT * FROM (SELECT ROWNUM RN,XX.* FROM (SELECT 表名.欄位名,表名.欄位名,表名.欄位名...FROM TABLE1 t1, TABLE2 t2WHERE t1.欄位=t2.欄位) XX WHERE ROWNUM<=pageSize*pageNumber) WHERE RN >(pageNumber-1)*pageSize
select *
from (select ab.*, rownum no
from (select b.*
from T_D_AC_TRADE_IVT a, T_P_AB_PORT b
where a.c_port_code = b.c_port_code) ab
where rownum <= 10)
where no >= 5
--其中