以前从hibernate中学习到,如果要从oracle中查询出从第m行开始的n条记录,SQL应该是:
select * from ( select row_.*, rownum rownum_ from (
select id, name, sex from t_user
) row_ where rownum <= m+n) where rownum_ > m
今天又从hibernate中学习到了MySQL中的实现:
select id, name, sex from t_user limit m-1,n
没错,还是使用limit。可能用得比较多的是limit 1000,返回前1000条记录,其实limit还可以指定起始行。但请注意第一个参数是行index而不是行号,是从0开始的。