数据库分页--MySQL数据库

时间:2022-07-11 09:03:43

关于实现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. rs=DB.executeQuery(conn, sql);
  9. try
  10. {
  11. while(rs.next())
  12. {
  13. Product p=new Product();
  14. p.setId(rs.getInt("id"));
  15. p.setName(rs.getString("name"));

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

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