关于实现MySQL分页的最简单的方法就是利用mysql数据库的limit函数:limit [offset,] rows
SELECT * FROM 表名称 LIMIT M,N
limit 子句可以被用于强制 select 语句返回指定的记录数。
limit 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1).为了与 postgresql 兼容,mysql 也支持句法: limit # offset #。
select * from table limit 5,10; // 检索记录行 6-15
为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
select * from table limit 95,-1; // 检索记录行 96-last.
如果只给定一个参数,它表示返回最大的记录行数目:
select * from table limit 5; //检索前 5 个记录行
//换句话说,limit n 等价于 limit 0,n。
1. select * from tablename <条件语句> limit 100,15 从100条记录后开始取15条 (实际取取的是第101-115条数据)
2. select * from tablename <条件语句> limit 100,-1 从第100条后开始-最后一条的记录
3. select * from tablename <条件语句> limit 15 相当于limit 0,15 .查询结果取前15条数据
- public List<Product> getProducts(int pageNo, int pageSize)
- {
- Connection conn=null;
- ResultSet rs=null;
- List<Product> list=new ArrayList<Product>();
- conn=DB.getConn();
- String sql="select * from product limit "+(pageNo-1)*pageSize+","+pageSize;
- rs=DB.executeQuery(conn, sql);
- try
- {
- while(rs.next())
- {
- Product p=new Product();
- p.setId(rs.getInt("id"));
- p.setName(rs.getString("name"));
如果是几千上万数据,就直接使用mysql自带的函数 limit的用法就ok了,如果是100万以上的数据,可能就要讲方法了,
select * from news where id>=(select id from news limit 490000,1) limit 10;