
mysql數(shù)據(jù)排序
在查詢數(shù)據(jù)時(shí),如果沒(méi)有使用排序操作,默認(rèn)情況下SQL會(huì)按數(shù)據(jù)添加的順序來(lái)排列查詢結(jié)果。
要對(duì)數(shù)據(jù)進(jìn)行排序,需要在select語(yǔ)句后邊加上order by 以及排序依據(jù)。
▲ 按照排序依據(jù)排序可以分為:按照列名排序、列的別名排序、列的編號(hào)排序。
▲ 按照順序升降可以分為:升序排列(由小到大)和降序排列(由大到小),升序排列在排序依據(jù)后邊加ASC(asc可以省略)、降序排列在排序依據(jù)后邊加DESC(DESC不能省略),也就是默認(rèn)情況下是按照升序排列的。
▲ 按照列的多少可以分為:?jiǎn)瘟信判?、多列排序?/p>
現(xiàn)有學(xué)生表如下圖:

按照年齡由小到大對(duì)學(xué)生進(jìn)行排序(單列排序)。
按照列名排序
select * from student order by sage asc;
按照列的編號(hào)排序
select * from student order by 4 asc;
按照列的別名排序
select sno 學(xué)號(hào),sname 姓名,sage as 年齡,ssex as 性別 from student order by 年齡 asc;

先按照性別由男到女排,再按照年齡由大到小排(多列排序)。
select sno 學(xué)號(hào),sname 姓名,sage as 年齡,ssex as 性別 from student order by 性別 desc,年齡 desc;

先按照年齡由大到小排列,再按照性別由女到男排列(多列排序)。
按照列名排序
select sno 學(xué)號(hào),sname 姓名,sage as 年齡,ssex as 性別 from student order by sage desc,ssex asc;
按照列的編號(hào)排序
select sno 學(xué)號(hào),sname 姓名,sage as 年齡,ssex as 性別 from student order by 3 desc,4 asc;
按照列的別名排序
select sno 學(xué)號(hào),sname 姓名,sage as 年齡,ssex as 性別 from student order by 年齡 desc,性別 asc;

需要注意按照多列排序時(shí),哪列在前哪列在后排出來(lái)結(jié)果是完全不同的,所以多列排序一定要注意列的順序。按照列的別名排序時(shí),必須先給列起別名。