(五)MySQL排序查詢

MySQL排序查詢

一、語法結構:

SELECT 
	查詢列表 
FROMWHERE 條件 
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

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章