0
点赞
收藏
分享

微信扫一扫

【MySQL系列】5.排序查询和分页查询

排序查询

排序方式有两种:

  • ASC:升序排序,ascend
  • DESC:降序排序,descend

排序的语法是:

select 字段 from user order by 字段 规则, 字段 规则...;

将用户按照年龄升序排序:

select * from user order by age asc;

升序是默认排序规则,可以省略:

select * from user order by age;

将学生按照成绩降序排序:

select name, score from students order by score desc;

也可以对多个字段进行排序,先按分数降序排序,如果两条记录分数相同,则再按照年龄升序排序:

select name, score from students order by sscore desc, age asc;

分页查询

分页查询是非常常见的一种需求,对查询结果进行分页,既能节省数据库性能,又能提高查询效率。

分页查询的语法比较灵活,有以下几种方式:

# limit 后面只有一个数字,表示不进行偏移,也就是从表的第1条数据开始查询
select 字段 from 表名 limit 查询记录数; 

# limit 后面有两个数字,分别表示偏移量(从第几条数据开始查询)和要查询的数量
select 字段 from 表名 limit 起始索引,查询记录数;

# 作用和上一条相同
select 字段 from 表名 limit 查询记录数 offset 起始索引;

进行分页查询时,假如每页显示10条数据,那么就用 limit 限制查询的数量为 10 条记录。查询第1页,就是从数据库的第一条数据开始,偏移量就是我们所说的页码,偏移量从0开始计算,据此可以得到一条查询语句:

select * from user limit 10 offset 0;
# 或者
select * from user limit 0 10;

如果要查询第2页的数据,偏移量就从第 10 条开始计算,也就是(页码-1)*每页显示的数量:

select * from user limit 10 offset 10;

可以得出一个计算分页查询的公式,假设页码是 m,每页展示数据n 条,那么:

limit = n;
offset = (m-1) * n;

小结

本文介绍了 MySQL 的分页查询和排序,属于非常常见的查询需求,语法也很简单,用到的关键字是:

  • order by 、asc、desc
  • limit、offset
举报

相关推荐

0 条评论