官术网_书友最值得收藏!

  • MariaDB必知必會
  • (美)Ben Forta
  • 716字
  • 2020-10-30 18:17:38

5.3 指定排序方向

數據的排序并沒有限制為只能按照升序排序(從A到Z)。盡管這是默認的排序序列,ORDER BY子句也可以使用降序排序(從Z到A)。為了進行降序排序,應使用關鍵字DESC。

下面的例子以價格進行降序排序(價格最高的在第一個):

▼ 輸入

▼ 輸出

但如果以多列為標準進行排序呢?下面的例子降序排序產品(價格最高的在第一個),后面跟上產品名字:

▼ 輸入

▼ 輸出

▼ 分析

關鍵字DESC僅僅作用于直接位于其前面的列名。上面的例子中,DESC作用于prod_price列,而沒有作用于prod_name列。因此,prod_price列按照降序排序,而prod_name列(對同一價格)以升序排序。

提示

多列降序排序 如果你想要在多列上進行降序排序,確保每一列都指定DESC關鍵字。

與DESC相反的關鍵字是ASC(意思是ascending),表示升序排序。實際上,ASC不經常使用,因為它是默認序列(即既沒有指定ASC,也沒有指定DESC)。

提示

區分大小寫和排序次序 如果你對文本進行排序,A與a相同嗎?a在B之前還是在Z之后呢?這些不是理論性的問題,答案取決于數據庫是如何設置的。

在字典排序順序中,認為A與a相同,這是MariaDB中的默認行為(許多其他DBMS也一樣)。然而,如果需要,管理員可以更改這種默認行為。(如果數據庫包含大量外文字符,可能就需要這樣做。)

這里的關鍵在于,如果需要改變這種排序,一個簡單的ORDER BY子句無法做到。如果需要修改列字符集,需要使用CONVERT()函數(函數在第11章介紹)或者聯系數據庫管理員。

結合使用ORDER BY和LIMIT時,就有可以找出列中的最大值和最小值。下面的例子演示如何找到價格最高的產品:

▼ 輸入

▼ 輸出

▼ 分析

“prod_price DESC”確保檢索到的行按照價格由高到低排序,“LIMIT 1”告訴MariaDB僅返回一行。

警告

ORDER BY子句的位置 當指定ORDER BY子句時,確保它在FROM子句之后。如果使用LIMIT,LIMIT必須跟在ORDERBY之后。如果不按照這樣的順序,將會產生錯誤信息。

主站蜘蛛池模板: 牟定县| 平原县| 郴州市| 长兴县| 察隅县| 白玉县| 罗江县| 武平县| 平阳县| 临汾市| 新绛县| 玛纳斯县| 额济纳旗| 温宿县| 三亚市| 确山县| 广宗县| 白河县| 黎川县| 西宁市| 出国| 固始县| 龙井市| 蒲城县| 伊金霍洛旗| 洛南县| 正镶白旗| 马关县| 牙克石市| 周宁县| 甘肃省| 乌审旗| 宿迁市| 石城县| 岳阳市| 栾川县| 靖西县| 越西县| 昌宁县| 夹江县| 盐边县|