mysql数据排序
在查询数据时,如果没有使用排序操作,默认情况下SQL会按数据添加的顺序来排列查询结果。
要对数据进行排序,需要在select语句后边加上order by 以及排序依据。
▲ 按照排序依据排序可以分为:按照列名排序、列的别名排序、列的编号排序。
▲ 按照顺序升降可以分为:升序排列(由小到大)和降序排列(由大到小),升序排列在排序依据后边加ASC(asc可以省略)、降序排列在排序依据后边加DESC(DESC不能省略),也就是默认情况下是按照升序排列的。
▲ 按照列的多少可以分为:单列排序、多列排序。
现有学生表如下图:
按照年龄由小到大对学生进行排序(单列排序)。
按照列名排序
select * from student order by sage asc;
按照列的编号排序
select * from student order by 4 asc;
按照列的别名排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 年龄 asc;
先按照性别由男到女排,再按照年龄由大到小排(多列排序)。
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 性别 desc,年龄 desc;
先按照年龄由大到小排列,再按照性别由女到男排列(多列排序)。
按照列名排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by sage desc,ssex asc;
按照列的编号排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 3 desc,4 asc;
按照列的别名排序
select sno 学号,sname 姓名,sage as 年龄,ssex as 性别 from student order by 年龄 desc,性别 asc;
需要注意按照多列排序时,哪列在前哪列在后排出来结果是完全不同的,所以多列排序一定要注意列的顺序。按照列的别名排序时,必须先给列起别名。