MySQL排序之—指定顺序排列(mysql指定顺序排序)

MySQL排序之—指定顺序排列

MySQL中的数据都是以记录的顺序来存储的,是没有顺序的,有时候,我们需要将数据排序,才能更加符合我们的要求,例如:我们在查询时,只需要查询某个字段的特定顺序,而不是按记录存储的顺序。本文在内容上主要是介绍MySQL中指定排序,以及指定顺序排列的实现方法,相信通过本文的介绍,可以让大家有所收获。

MySQL支持通过ORDER BY子句,按照指定的列对数据进行排序,比如:假设我们需要将查询的结果按名字从A到Z的顺序排序,就可以这样:

SELECT * FROM student ORDER BY name ASC;

第一句中的 ASC 关键字出现的位置,是告诉MySQL,使用从低到高排序。如果我们想要从高到低排序(比如从Z到A),就要使用 DESC 关键字:

SELECT * FROM student ORDER BY name DESC;

除了使用 ASC 和 DESC 关键字外,MySQL还支持使用指定顺序来排序,也就是按照特定的顺序来排序,比如:

SELECT * FROM student ORDER BY name ASC, age DESC;

上面这个查询中,MySQL将按name字段从小到大排序,然后按age字段从大到小排序。对于多个列排序,MySQL是以第一个列排序,这个排序的结果来排序的,而第二列的排序,只能作为第一排序的补充,也就是说,如果第一列的排序结果有相同的,就会由第二列的排序来决定其在结果中的顺序。例如,如果名字及年龄相同,则使用系列号来决定显示顺序:

SELECT * FROM student ORDER BY age DESC, name ASC, sequence ASC;

当然,上面的查询都是基于升序(ASC)和降序(DESC)排序,如果我们想要指定顺序,还可以使用 FIELD() 函数,FIElD() 函数可以按照提供的字段顺序,将相应的字段的值由小到大排序出来,例如:

SELECT * FROM student ORDER BY FIELD (name,'Peter','John','Alex');

上面这条查询中,MySQL将按照 name 字段中指定的顺序,Peter、John、Alex 来排序,也就是先把 Peter 的记录排出来,然后取出 John 的记录,再然后取出所有 Alex 的记录。

总结

本文主要介绍了MySQL中指定排序,以及指定顺序排列的实现方法。MySQL中也可以使用ORDER BY子句,按照指定的列对数据进行排序,同时,还可以使用 FIELD() 函数,按照指定的字段顺序将相应的字段的值由小到大排序出来。


数据运维技术 » MySQL排序之—指定顺序排列(mysql指定顺序排序)