(一)order by的作用
在mysql的运用中,我们经常会遇到排序问题,order by可对结果集按照某一列或同时按照多列进行升序或降序排列。
(二)order by的使用语法
select column_name,column_name from tables [where conditions]
order by expression asc|desc;
1.升序or降序
order by的默认排序为升序asc,若想采用降序,可在order by(字段)后添加desc。
2.多个字段同时排序
若需对多个字段同时进行排序:
order by column_name1 asc|desc, column_name2 asc|desc, column_name3 asc|desc
(三)order by的具体使用
存在以下学生成绩表student:
student_id | score |
100001 | 56 |
100008 | 89 |
100002 | 75 |
100003 | 89 |
1.对某一列进行排序——按照成绩降序进行排序
select student_id, score from student order by score desc;
输出结果:
student_id | score |
100008 | 89 |
100003 | 89 |
100002 | 75 |
100001 | 56 |
2.对多列进行排序——按照成绩降序排序,若存在成绩相同则按学号升序排序
select student_id, score from student
order by score desc, student
输出结果:
student_id | score |
100003 | 89 |
100008 | 89 |
100002 | 75 |
100001 | 56 |
3.根据索引进行排序
order by 关键词也可以按照索引进行排序,从左往右,左边第一列为1,第二列为2......以此类推
select student_id, score from stuent order by 2; # 默认升序
输出结果:
student_id | score |
100001 | 56 |
100002 | 75 |
100008 | 89 |
100003 | 89 |