PostgreSQL、Mysql中limit使用方法比较

发布时间:2024-03-23
在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据。一般数据库管理系统都会提供这些功能,但是各个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 子句把结果行约束成一个唯一的顺序是一个好主意。否则你就会拿到一个不可预料的该查询的行的子集。
上一个:当事人申请执行转破产程序
下一个:B1级橡塑保温板防火功能深受消费者的喜爱

激光切割机在服装布料应用广泛
手持式微型气象站价格&寒潮“冻”真格了
关于ASTM A193 B8CL2/A193 B8MCL2高强度紧固件
ltc3780dc-dc升压模块_引脚配置_功能应用-
工程造价预算中容易遗漏的99项(土建、安装)
按茶叶的制作分类
LDX-4775电子产品屏幕透光率雾度测试仪
不交社保辞职怎么赔偿
盗窃案件有哪些侦查方法
RTT023402BTH现货库存,最新价格