三 . 排序查询
三.排序查询
注意:默认是升序排列。
1.升序排列
mysql> select name ,score
-> from t_student
-> order by score asc;
+------+-------+
| name | score |
+------+-------+
| 李四 | 50 |
| 王五 | 55 |
| 张三 | 66 |
| 张三 | 70 |
| 李四 | 75 |
| 王五 | 77 |
| 张三 | 80 |
| 李四 | 80 |
| 王五 | 88 |
| 王五 | 90 |
+------+-------+
2.降序排列
mysql> select name,score
-> from t_student
-> order by score desc;
+------+-------+
| name | score |
+------+-------+
| 王五 | 90 |
| 王五 | 88 |
| 张三 | 80 |
| 李四 | 80 |
| 王五 | 77 |
| 李四 | 75 |
| 张三 | 70 |
| 张三 | 66 |
| 王五 | 55 |
| 李四 | 50 |
+------+-------+
eg:t_student按照成绩降序排列,当成绩相同时,按照学号升序排列。
mysql> select name,score,id
-> from t_student
-> order by score desc,
-> id asc;
+------+-------+------+
| name | score | id |
+------+-------+------+
| 田七 | 100 | 5 |
| 王五 | 90 | 3 |
| 赵六 | 90 | 4 |
| 王五 | 88 | 3 |
| 张三 | 80 | 1 |
| 李四 | 80 | 2 |
| 赵六 | 80 | 4 |
| 田七 | 78 | 5 |
| 王五 | 77 | 3 |
| 李四 | 75 | 2 |
| 赵六 | 71 | 4 |
| 张三 | 70 | 1 |
| 张三 | 66 | 1 |
| 赵六 | 66 | 4 |
| 田七 | 65 | 5 |
| 王五 | 55 | 3 |
| 李四 | 50 | 2 |
| 田七 | 44 | 5 |
+------+-------+------+
注意:多个字段排序时,越靠前的排序起的主导作用越大。
eg:查询学号在1--3之间的学生姓名,并按照成绩降序排列。
mysql> select name ,id,score
-> from t_student
-> where id between 1 and 3
-> order by score desc;
+------+------+-------+
| name | id | score |
+------+------+-------+
| 王五 | 3 | 90 |
| 王五 | 3 | 88 |
| 张三 | 1 | 80 |
| 李四 | 2 | 80 |
| 王五 | 3 | 77 |
| 李四 | 2 | 75 |
| 张三 | 1 | 70 |
| 张三 | 1 | 66 |
| 王五 | 3 | 55 |
| 李四 | 2 | 50 |
+------+------+-------+
10 rows in set (0.00 sec)
注意:执行顺序如下
select 字段 (3)
from 表名 (1)
where 条件 (2)
order by (4,最后执行)
...