一、排序应用场景
我们已经掌握使用 SELECT 语句结合 WHERE 查询条件获取需要的数据,但在实际应用中还会遇到例如学生按身高从高到低排序、商品按价格排序、博客文章按发布的先后顺序排序等等这类需求,那么遇到这类需求该如何解决呢?
二、order by 的使用
在SQL中,使用 order by 对查询结果集进行排序,可以按照一列或者多列进行排序,语法如下:
SELECT column_name1, column_name2, column_name3 FROM table_name1,table_name2 ORDER BY column_name, column_name [ASC|DESC]
TIP:
- ASC 表示按照升序排列,DESC 表示按照降序排列;
- 默认情况下对列按照升序排列。
例如将学生表中的学生按照年龄升序,身高降序排列:
select name,age,height from student order by age,height desc;
三、limit 的使用
在 SELECT 语句中使用 LIMIT 子句来约束要返回的记录数,通常使用 LIMIT 实现分页。语法如下:
SELECT column_name1, column_name2, column_name3 FROM table_name1,table_name2 LIMIT [offset] row_count;
TIP:
- offset 指定要返回的第一行的偏移量。第一行的偏移量是0,而不是1;
- row_count 指定要返回的最大行数。
limit 分页公式:limit (page-1) * row_count,row_count
例如获取学生表第100页的数据,每页50条:
# 第100页偏移量:(100-1) * 50 select name,age,sex from student limit 4950,50