在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据。一般数据库管理系统都会提供这些功能,但是各个dbms提供的查询方法又有些不一样。下面主要介绍mysql和postgresql在使用limit查询其中几行数据的区别。
mysql:
limit 子句可以被用于强制 select 语句返回指定的记录数。limit 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初 始记录行的偏移量是 0(而不是 1)。
为了与 postgresql 兼容,mysql 也支持句法: limit # offset #。具体举例:
mysql> select * from table limit 5,10;? // 检索记录行 6-15
//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:
mysql> select * from table limit 95,-1; // 检索记录行 96-last.
//如果只给定一个参数,它表示返回最大的记录行数目:
mysql> select * from table limit 5; //检索前 5 个记录行
//换句话说,limit n 等价于 limit 0,n。
postgresql:
如果给出了一个限制计数,那么返回不超过那么多的行。(但可能更少些,因为查询本身可能生成的行数就比较少。) limit all 和省略 limit 子句一样。
//b为起始值(不包括b),a为获取数据长度。
select * from table limit a offset b ;
//举例:检索记录行6-15
select * from table limit 10 offset 5;
//如果只给定一个参数,它表示返回最大的记录行数目:
select * from table limit 5; //和mysql用法一样;
//也就是说“offset 说明在开始返回行之前忽略多少行。 offset 0 和省略 offset 子句是一样的。”
当然如果使用limit,那么用order by 子句把结果行约束成一个唯一的顺序是一个好主意。否则你就会拿到一个不可预料的该查询的行的子集。
阿里云服务器网站发布阿里云轻量云服务器怎么上传文件钉钉连麦怎么关摄像头 钉钉电脑版怎么关闭摄像头添加栏目显示数据库错误-虚拟主机/数据库问题SEO优化中怎么发外链不容易被删电脑腾讯会议摄像头打不开 腾讯会议如何开启摄像头云服务器618抢购SEO优化关键词又该如何把控好密度呢?