数据库分页--MySQL数据库

关于实现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条数据

  1. public List<Product> getProducts(int pageNo, int pageSize)  
  2. {  
  3. Connection conn=null;  
  4. ResultSet rs=null;  
  5. List<Product> list=new ArrayList<Product>();  
  6. conn=DB.getConn();  
  7. String sql="select * from product limit "+(pageNo-1)*pageSize+","+pageSize;  
  8.  
  9. rs=DB.executeQuery(conn, sql);  
  10. try  
  11. {  
  12. while(rs.next())  
  13. {  
  14. Product p=new Product();  
  15. p.setId(rs.getInt("id"));  
  16. p.setName(rs.getString("name"));  

如果是几千上万数据,就直接使用mysql自带的函数 limit的用法就ok了,如果是100万以上的数据,可能就要讲方法了,

 select * from news where id>=(select id from news limit 490000,1) limit 10; 

原文地址:https://www.cnblogs.com/liwenjuan/p/3202288.html