排序与分页

110 阅读2分钟

排序

1.排序规则:

  • 使用order by子句排序
    • asc 升序
    • desc 降序
  • order by子句在select语句的结尾

2.单列排序:

#默认为升序(使用ASC关键字,可以省略)
SELECT * FROM writing_task ORDER BY task_id;
SELECT * FROM writing_task ORDER BY task_id ASC;
#降序使用DESC关键字
SELECT * FROM writing_task ORDER BY task_id DESC;

3.多列排序

  • 可以使用不在select列表中列排序
  • 在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序,如果第一列数据中所有值都是唯一的,将不再对第二列进行排序
#多列排序,status字段省升序,task_id字段降序
SELECT * FROM writing_task ORDER BY `status`,task_id DESC;

分页

1.背景

  • 背景1:查询返回的记录太多,查看起来不方便,怎么样能实现分页查询呢?
  • 背景2:表里有4条数据,我们只想要显示第2,3条数据怎么办呢?

2.实现规则

  • 分页原理
    • 所谓的分页显示,就是将数据库中的数据集,一段一段显示出来需要的条件
  • mysql中使用limit实现分页
  • 格式
    • limit [位置偏移量],行数
  • 分页显示公式:(当前页数-1)*每页条数,每页条数
#LIMIT [当前页-1]*每页条数,每页条数
#显示前10条
SELECT * FROM writing_task LIMIT 0,10;
#显示第11条到第20条
SELECT * FROM writing_task LIMIT 10,10;

3.好处

约束返回结果的数量可以减少数据表的网络传输量,也可以提升查询效率.如果我们知道返回结果只有1条,就可以使用limit 1,告诉select语句只需要返回一条记录即可,这样的好处就是select不需要扫描完整的表,只需要检索到一条符合条件的记录即可返回