首页
解决方案
技术服务
专业数据库维保服务 大数据维保服务
一体机
Oracle数据库一体机 PolarDB数据库一体机 瀚高数据库一体机 崖山数据库一体机 海扬数据库一体机 高斯数据库一体机 金仓数据库一体机
产品
CLup乘数云统一平台 CData高性能数据库云一体机 CPDA高性能双子星数据库机 CBackup数据库备份恢复云平台 CMiner: PostgreSQL中的CDC CSYun超融合虚拟机产品 ZQPool数据库连接池 ConshGuard数据保护产品 APCC: Greenplum管理平台
文档
文章
客户及伙伴
中启开源
关于我们
登录
×
修改密码

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条数据