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

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

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

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条,注意结果为倒序排序,因为用了desc

select * 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)

如果你的表里边有索引的话就能查

例如id为自增值

最后5行

select * from tbl order by id desc limit 5

最前5行

slect * from tbl order by id asc limit 5

有问题来http://www.0523dpw.com 给我留言


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7286242.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存