MySQL 基礎篇函數
三範式spa
MySQL 軍規code
MySQL 配置blog
MySQL 字段類型介紹class
數據準備:
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 關鍵字。