PostgreSQL 与 MySQL 在分页查询上的区别

  1. 1.如果从第一条开始取记录 , pgmysql都支持 select * from tb limit A;
  2. 2.当从至少第二条数据取记录时 , pg 仅支持 limit A offset B , mysql 除了支持 pg 的分页之外 , 还支持 limit B,A
1.PostgreSQL分页
  1. limit分页语法:
  2. select * from tb limit A offset B;
  3. 解释:
  4. A就是你需要显示多少行;
  5. B就是查询的起点位置。
  6. 示例:
  7. select * from tb limit 5;
  8. 等价于
  9. select * from tb limit 5 offset 0; -- 不包含第0条,当然数据库第1条数据,就是第1条,而不是第0
  10. 意思是,从第一条开始查询,返回5条数据。
  11. select * from tb limit 15 offset 5 ; -- 取第6条开始,取15条数据
  12. 意思是,起点5开始查询,返回15条数据。
  13. 分页并显示行号,类似oracle里的rownum
  14. select *,row_number() over() as rownum from tb limit 5 offset 0;
2.MySQL分页
  1. 1.自己的语法
  2. SELECT * FROM 表名 limit m,n;
  3. m代表从m+1条记录行开始检索,n代表取出n条数据。(m0时,表示从第一行开始取数据)
  4. 示例
  5. 如:SELECT * FROM tb limit 6,5;
  6. 表示:从第7条记录行开始算,取出5条数据
  7. 如果要从第1条记录行开始取数据
  8. 如:SELECT * FROM tb limit 6; 等价于 SELECT * FROM tb limit 0,6;
  9. 表示:取出前6条记录行。
  10. 2.兼容 pg 语法
  11. SELECT * FROM table LIMIT rows OFFSET offset
  12. 示例
  13. SELECT * FROM tb limit 5 offset 6;
  14. 表示:从第7条记录行开始算,取出5条数据
  15. SELECT * FROM tb limit 5 offset 0; 等价于 SELECT * FROM tb limit 5;
  16. 表示:从第1条记录行开始算,取出5条数据
本站文章,未经作者同意,请勿转载,如需转载,请邮件customer@csudata.com.
0 评论  
添加一条新评论