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