九、查询结果排序与分页

一、排序应用场景

我们已经掌握使用 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:

  1. ASC 表示按照升序排列,DESC 表示按照降序排列;
  2. 默认情况下对列按照升序排列。


例如将学生表中的学生按照年龄升序,身高降序排列:

 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:

  1. offset 指定要返回的第一行的偏移量。第一行的偏移量是0,而不是1;
  2. 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
上一篇:[20130815]关于虚拟索引的问题.txt


下一篇:ListView控件学习系列3-ListView选择,排序,分页