六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 170|回复: 0

mysql如何指定查询一张表的查询结果,如最后5行记录和最前5行记录

[复制链接]

升级  10%

1

主题

1

主题

1

主题

童生

Rank: 1

积分
5
 楼主| 发表于 2013-1-29 16:21:23 | 显示全部楼层 |阅读模式
 
mysql如何指定查询一张表的查询结果,如最后5行记录和最前5行记录我们以student表为例,里面有三个字段:id,name,age,其中id为主健,为自增,里面共有10条记录,如下所示。mysql> select  * from student;+----+------+------+| id | name | age  |+----+------+------+|  1 | li   |   11 ||  2 | zh   |   12 ||  3 | chou |   13 ||  4 | he   |   14 ||  5 | lin  |   15 ||  6 | ll   |   16 ||  7 | chen |   17 ||  8 | yu   |   18 ||  9 | wu   |   19 || 10 | xie  |   20 |+----+------+------+10 rows in set (0.00 sec)1、查询第一行记录select * from student limit 1;+----+------+------+| id | name | age  |+----+------+------+|  1 | li   |   11 |+----+------+------+1 row in set (0.00 sec)2、查询最后一行记录select * from student order by id desc limit 1;+----+------+------+| id | name | age  |+----+------+------+| 10 | xie  |   20 |+----+------+------+1 row in set (0.00 sec)3、查询前n行记录,如前5行select * from student limit 5;select * from student limit 0,5;select * from student order by id asc limit 5;上面三条语句的结果都是一样的,如下:+----+------+------+| id | name | age  |+----+------+------+|  1 | li   |   11 ||  2 | zh   |   12 ||  3 | chou |   13 ||  4 | he   |   14 ||  5 | lin  |   15 |+----+------+------+5 rows in set (0.00 sec)4、查询后n行记录,如后5条,注意结果为倒序排序,因为用了descselect * from student order by id desc limit 5;+----+------+------+| id | name | age  |+----+------+------+| 10 | xie  |   20 ||  9 | wu   |   19 ||  8 | yu   |   18 ||  7 | chen |   17 ||  6 | ll   |   16 |+----+------+------+5 rows in set (0.00 sec)5、查询第m行到第n行记录,注意表中的记录下标是从0开始的,就像数组一样select * from student limit m,n;  返回m+1到m+n行记录,m代表开始的下标,n代表查找的结果数,将返回n行结果select * from student limit 2,8;  返回3到10行记录+----+------+------+| id | name | age  |+----+------+------+|  3 | chou |   13 ||  4 | he   |   14 ||  5 | lin  |   15 ||  6 | ll   |   16 ||  7 | chen |   17 ||  8 | yu   |   18 ||  9 | wu   |   19 || 10 | xie  |   20 |+----+------+------+8 rows in set (0.00 sec)select * from student limit 3,1; 返回第4行+----+------+------+| id | name | age  |+----+------+------+|  4 | he   |   14 |+----+------+------+1 row in set (0.00 sec)6、查询一条记录($id)的下一条记录select * from student where id>$id order by id asc limit 1;如$id=4时将返回第5条记录select * from student where id>4 order by id asc limit 1;+----+------+------+| id | name | age  |+----+------+------+|  5 | lin  |   15 |+----+------+------+1 row in set (0.00 sec)7、查询一条记录($id)的上一条记录select * from student where id<$id order by id desc limit 1;如$id=4时将返回第3条记录select * from student where id<4 order by id desc limit 1;+----+------+------+| id | name | age  |+----+------+------+|  3 | chou |   13 |+----+------+------+1 row in set (0.00 sec)
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表