MySQL 多列排序


MySQL 基礎篇

三范式

MySQL 軍規

MySQL 配置

MySQL 用戶管理和權限設置

MySQL 常用函數介紹

MySQL 字段類型介紹

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 關鍵字。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM