- 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之后。如果不按照這樣的順序,將會產生錯誤信息。
- 基于粒計算模型的圖像處理
- Java多線程編程實戰指南:設計模式篇(第2版)
- Building a RESTful Web Service with Spring
- Vue.js 3.x從入門到精通(視頻教學版)
- FreeSWITCH 1.6 Cookbook
- Java游戲服務器架構實戰
- Building Mapping Applications with QGIS
- ServiceNow:Building Powerful Workflows
- INSTANT Yii 1.1 Application Development Starter
- 玩轉.NET Micro Framework移植:基于STM32F10x處理器
- 讓Python遇上Office:從編程入門到自動化辦公實踐
- Python程序設計
- Java EE應用開發及實訓
- Visual C++網絡編程教程(Visual Studio 2010平臺)
- 網頁設計理論與實踐