mysql之limit用法和orcale的rownum用法
mysql之limit用法
1.mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 #从6行开始检索,检索10行的数据
2.//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. # 从96行开始一直到最后一行数据
3.//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 (1到5行数据)
//换句话说,LIMIT n 等价于 LIMIT 0,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开始的伪列
解决方法:如果想找到从第二行记录以后的记录,可使用以下的子查询方法来解决。注意子查询中的rownum必须要有别名,否则还是不会查出记录来
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 t2 WHERE 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
--其中