MySQL 多列排序

MySQL 基礎篇函數

三範式spa

MySQL 軍規code

MySQL 配置blog

MySQL 用戶管理和權限設置排序

MySQL 經常使用函數介紹get

MySQL 字段類型介紹class

MySQL 多列排序基礎

MySQL 行轉列 列轉行配置

MySQL NULL 使用帶來的坑權限

MySQL AND 和 OR 聯合使用帶來的坑

MySQL 觸發器的使用

 

數據準備:

CREATE TABLE `teacher` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, `age` int(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4; insert into `teacher` (`id`, `name`, `age`) values('1','seven','18'); insert into `teacher` (`id`, `name`, `age`) values('2','qingshan','20'); insert into `teacher` (`id`, `name`, `age`) values('3','zhangsan','33');

好比咱們對錶中的數據先按照年齡,而後按照姓名排序,怎麼寫 SQL 呢?

SELECT * FROM teacher ORDER BY age, name;

這裏須要注意的是,對於上述例子中的輸出,僅在多個行具備相同的 age 值時纔對老師按 name 進行排序。若是 age 列中全部的值都是惟一的,則不會按 name 排序。

好比咱們須要對錶中的數據先按年齡降序,而後按姓名升序排序,怎麼寫 SQL 呢?

SELECT * FROM teacher ORDER BY age DESC, name;

能夠在姓名 name 字段後面加上 ASC(升序) 也能夠不加,由於升序是默認的(若是既不指定 ASC 也不指定 DESC ,則假定爲 ASC )。

這裏須要注意的是,DESC 關鍵字只應用到直接位於其前面的列名,在上例中,只對 age 列指定 DESC ,對 name 列不指定。所以,age 列以降序排序,而 name 列(在每一個價格內)仍然按標準的升序排序。在多個列上降序排序 若是想在多個列上進行降序排序,必須對每一個列指定 DESC 關鍵字。

相關文章
相關標籤/搜索