MySQL之对查询结果进⾏排序(ORDERBY)
定义:
在 MySQL SELECT 语句中,ORDER BY ⼦句主要⽤来将结果集中的数据按照⼀定的顺序进⾏排序。
其语法格式为:
web开发网站SELECT <;字段>[,..<;字段n>] FROM <;数据表名>
ORDER BY {<;列名> | <;表达式> | <;位置>} [ASC|DESC]
语法说明如下。
1) 列名mysql语句顺序
指定⽤于排序的列。可以指定多个列,列名之间⽤逗号分隔。
2) 表达式
指定⽤于排序的表达式。
3) 位置编程语言排行榜说明了什么
指定⽤于排序的列在 SELECT 语句结果集中的位置,通常是⼀个正整数。
4) ASC|DESC
关键字ASC表⽰按升序分组,关键字DESC表⽰按降序分组,其中ASC为默认值。这两个关键字必须位于对应的列名、表达式、列的位置之后。
使⽤ ORDER BY ⼦句应该注意以下⼏个⽅⾯:linux基础知识题库
ORDER BY ⼦句中可以包含⼦查询。
当排序的值中存在空值时,ORDER BY ⼦句会将该空值作为最⼩值来对待。
当在 ORDER BY ⼦句中指定多个列进⾏排序时,MySQL 会按照列的顺序从左到右依次进⾏排序。
查询的数据并没有以⼀种特定的顺序显⽰,如果没有对它们进⾏排序,则将根据插⼊到数据表中的顺序显⽰。使⽤ ORDER BY ⼦句对指定的列数据进⾏排序。
【实例 1】查询 tb_students_info 表的 height 字段值,并对其进⾏排序,输⼊的 SQL 语句和执⾏结果
如下所⽰。
以上查询未指定排序的⽅法,则按照默认的ASC升序进⾏排序;
有时需要根据多列进⾏排序。对多列数据进⾏排序要将需要排序的列之间⽤逗号隔开。
【实例 2】查询 tb_students_info 表中的 name 和 height 字段,先按 height 排序,再按 name 排序,输⼊的 SQL 语句和执⾏结果如下所⽰。
1、只对height进⾏排序时如下:
2、先对height进⾏排序,再对name进⾏排序,查询结果如下:
以上查询结果显⽰,只对height进⾏排序时,Dany排在Anna的前⾯;将对height和name都进⾏排序时Anna排在了前⾯;
提⽰:前提条件:先排序的height列中Anna和Dany 的height值都是160,所以先进⾏了height排序,再进⾏name排序。adaptable
注意:在对多列进⾏排序时,⾸⾏排序的第⼀列必须有相同的列值,才会对第⼆列进⾏排序。如果第⼀列数据中所有的值都是唯⼀的,将不再对第⼆列进⾏排序。
默认情况下,查询数据按字母升序进⾏排序(A~Z),但数据的排序并不仅限于此,还可以使⽤ ORDER BY 对查询结果进⾏降序排序(Z ~A),这可以通过关键字 DESC 实现。可以对多列进⾏不同的顺序排序。
【实例 3】查询 tb_students_info 表,先按 height 降序排序,再按 name 升序排序,输⼊的 SQL 语句和执⾏过程如下所⽰。
tetrahedral注意:DESC 关键字只对前⾯的列进⾏降序排列,在这⾥只对 height 排序,⽽并没有对 name 进⾏排序,因此,height 按降序排序,⽽ name 仍按升序排序,如果要对多列进⾏降序排序,必须要在每⼀列的后⾯加 DESC 关键字。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论