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;
需要注意按照多列排序時,哪列在前哪列在后排出來結果是完全不同的,所以多列排序一定要注意列的順序。按照列的別名排序時,必須先給列起別名。