MySQL排序查詢
一、語法結構:
SELECT
查詢列表
FROM 表
WHERE 條件
ORDER BY
排序字段
ASC/DESC
- ASC 升序 ,一般asc可以省略,默認以升序排列。
- DESC 降序。
二、經典案例
案例1:查詢學生信息,要求按生日從高到低排序。
SELECT * FROM tstudent ORDER BY Birthday DESC
案例2:查詢學生編號>=90的學生信息,要求按生日排序
SELECT * FROM tstudent WHERE StudentID>=90 ORDER BY Birthday DESC
三、思路解析案例
案例3:查詢學生編號>=90的學生信息,要求按年齡排序
SELECT * FROM tstudent
我們查所有字段,發現表中沒有年齡。怎麼辦呢?
思路:
年齡=當前年份-出生年份
SELECT CURDATE() #查詢當前日期
有了當前日期之後,還不行。我們必須把後面的-06-11過濾掉。因爲我們始終要記得我們只要年份。
SELECT YEAR(CURDATE()); #提取年份
再來測試一下常量能不能提取出來年份,隨便輸入一個2013-8-24
SELECT YEAR('2013-8-24') #提取生日中的年份
成功提取。
提取好年份之後。我們就用“當前年份-常量的年份”,看能不能出來結果。
SELECT YEAR(CURDATE())-YEAR('2013-8-24') #年份減去年份
現在我們直接把常量的2013-8-24直接替換成生日字段
SELECT
YEAR(CURDATE())-YEAR(`Birthday`) AS age
FROM
`tstudent`;
現在我們根據題目要求進行回答
SELECT
`Sname` AS 姓名,
`Birthday` AS '出生日期',
(YEAR(CURDATE())-YEAR(`Birthday`)) AS '年齡'
FROM
`tstudent`
ORDER BY '年齡' DESC