项目中有个功能需要取4条数据,每2条取一次,页面会传过来一个参数,比如4,就是就取第3条和第4条数据,项目要兼容mysql和oracle,mysql经常用limit,oracle通常用rownum
mysql取第3和4条记录sql实例,limit 代表从几开始取几个,下面sql从2开始,取2条数据,不包含2,从3开始,因此取的结果是3,4条记录:
select t.C_ID,t.C_PATH,t.C_REAL_PATH,t.C_TEXT from tbl_catalog t where t.c_parent_id=83 order by t.c_sortno asc limit 2,2
oracle用rownum就显得复杂一些,如果像mysql那样直接用,很多情况下是查不到数据的,实例:
select *
from (select a.*, rownum row_num
from (select t.C_ID, t.C_PATH, t.C_REAL_PATH, t.C_TEXT
from tbl_catalog t
where t.c_parent_id = 83
order by t.c_sortno asc) a) b
where b.row_num > 2
and b.row_num <= 4;