MySQL ORDER BY DESC简介
MySQL ORDER BY DESC是MySQL中的一个ORDER BY子句,它负责在获取结果行时对数据库记录进行排序。
基本上,ORDER BY子句使用属性来指定表记录的排序顺序。因此,我们需要在这个查询命令的ORDER BY子句中包括ASC或DESC修饰符。
这些属性与ORDER BY子句一起,使结果表中的行的排列以升序或降序显示。但是默认情况下,当没有向ORDER BY子句提供修饰符时,其值将被设置为ASC。因此,我们将实现ORDER BY DESC查询,使结果中的行以降序排列。
语法
下面的语法是一个简单的结构,用于在MySQL数据库查询中应用ORDER BY DESC子句。
SELECT ColumnName1, ColumnName2, ….FROM TableName WHERE Cond_Expr ORDER BY ColumnName1 DESC, ColumnName2DESC,….ColumnNameNDESC;
语法解释如下。
- 为了应用ORDER BY DESC子句,我们将使用SELECT语句来写一个查询。
- ColumnName表示用户希望获取的表列的名称。
- TableName表示查询中包含的表的名称。
- WHERE子句定义了为表提供结果而应用的条件表达式,如果需要,这是一个可选条件。然而,如果条件被匹配,那么所选的行将被显示在结果集中。
- 带有DESC的ORDER BY子句定义了具有特定列名的排序结构。
ORDER BY DESC在MySQL中是如何工作的?
- 在MySQL查询中执行SELECT语句将从特定的表中获取数据记录;然后,你会注意到提供的结果行表不是以有序的形式出现。因此,为了以排序列表的方式呈现结果集,我们需要在SELECT查询中添加MySQL ORDER BY子句。
- 在ORDER BY子句的帮助下,你可以用任何特定的列名对行进行排序。为了进一步使结果以排序的形式显示,即增加或减少的顺序,我们将使用关键字ASC或DESC,它定义了这个ORDER BY子句的属性。
- DESC关键字与ORDER BY子句一起使用,使记录以递减的顺序检索。我们可以在ORDER BY子句后指定一个或多个需要排序的表列,但应以逗号来分隔列的列表。在这里,你应该注意,不同的列可以用ASC或DESC关键字在ORDER BY后根据所述的语法进行不同的排序。就像下面这个。
SELECT ColumnName1, ColumnName2, …. FROM TableName ORDER BY ColumnName1 ASC, ColumnName2 DESC,….ColumnNameN [ASC | DESC];
因此,这将通过以明确的方式重新排列结果行来排序。
MySQL ORDER BY DESC的例子
让我们演示一些使用ORDER BY DESC子句的例子,看看它在MySQL中的用途和工作。
例子#1 - MySQL使用一个表列的ORDER BY DESC
假设,为了说明问题,我们将在我们的数据库中采取一个名为Customer的样本表,它有CusotmerID、CutomerName、Credit_Limit和City等字段。查看该表的内容如下。
SELECT * FROM Customer;
输出。
让我们从Customer表中查询数据记录,使用ORDER BY子句来显示结果,但不包括属性。
SELECT CustomerID, CustomerName, City FROM Customer ORDER BY CustomerName;
输出。
从上面的输出可以看出,通过省略ASC和DESC关键字,结果行默认以升序排序。
现在,让我们使用MySQL ORDER BY DESC子句写一个查询,按特定的表列以降序排序查询结果集。
SELECT CustomerID, CustomerName, City FROM Customer ORDER BY CustomerName DESC;
输出。
通过使用带有ORDER BY子句的DESC修饰符,以递减顺序排列的方式对内容进行排序,可以看到其中的差别。例如,查询中的CustomerName列是用ORDER BY DESC指定的。
例子#2 - 使用多个表列的MySQL ORDER BY DESC
我们将在查询中使用MySQL ORDER BY DESC子句与表的多个列,并查看执行后的结果集。对同一表Customer进行查询的MySQL语句与前面的一样,如下所示。
SELECTCustomerID, CustomerName, City FROM Customer ORDER BY CustomerName DESC, City DESC;
输出。
在这里,我们在ORDER BY子句后的两个列名中使用了DESC关键字,以产生降序排列的结果集。因此,在一个列被添加了DESC而另一个没有的情况下,它将自动以升序进行排序。
例子#3 - MySQL ORDER BY DESC使用WHERE子句
假设我们需要生成信用额度大于或等于3000的客户的结果集,在同一查询中使用ORDER BY DESC子句来获取结果行。我们将用WHERE子句查询记录,如下所示。
SELECT CustomerName, City, Credit_LimitFROM Customer WHERE Credit_Limit>=3000 ORDER BY City DESC;
输出。
例子#4 - MySQL ORDER BY DESC使用LIMIT选项
我们将应用LIMIT子句,该子句是可选的,为获取的结果行提供限制。我们将与ORDER BY DESC子句一起,在最后使用LIMIT选项来查看结果。让我们把前面的例子稍作修改,如下所示。
SELECT * FROM Customer WHERE Credit_Limit>=1500 ORDER BY Credit_Limit DESC;
输出。
在这里,我们简单地检索了有6行的结果,按信用额度列和WHERE子句排序。现在,使用LIMIT,该查询变得如下。
SELECT * FROM Customer WHERE Credit_Limit>=1500 ORDER BY Credit_LimitDESC LIMIT 3;
输出。
现在,请看输出结果;如上所述,结果行数减少到3行,而且信用额度是降序排列的,如上文查询中所述。
结论
ORDER BY子句伴随着DESC修改器属性,定义了在查询中获取表行的排序顺序。如果在查询中没有为ORDER BY子句指定任何属性,那么,结果行将默认为递增的顺序。
在MySQL中,ORDER BY DESC子句可以应用于SELECT LIMIT语句、SELECT语句和DELETE LIMIT语句。
推荐文章
这是一个关于MySQL ORDER BY DESC的指南。这里我们讨论了ORDER BY DESC如何在MySQL中工作,以及与输出有关的例子。你也可以看看下面的文章,以了解更多信息
The postMySQL ORDER BY DESCappeared first onEDUCBA.