Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2450513
  • 博文数量: 540
  • 博客积分: 11289
  • 博客等级: 上将
  • 技术积分: 6160
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-11 20:27
个人简介

潜龙勿用,见龙在田

文章分类

全部博文(540)

文章存档

2018年(2)

2013年(5)

2012年(24)

2011年(104)

2010年(60)

2009年(217)

2008年(128)

分类: Mysql/postgreSQL

2009-08-03 11:55:13

在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,已经为我们提供了这样一个功能,尽管语法逻辑很是怪异。这个功能就好比oracle里的rownum,但比mysql提供的这个LIMIT好用、好记和好理解多了,呵呵。
 
SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset
 

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。
 
上面负数的用法“LIMIT 95,-1”本人在mysql5.0.45下实验报错。
 
阅读(1915) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~