簡體   English   中英

mysql按多列順序排序

[英]mysql order by multiple columns different directions

我有桌子。

表結構是

在此處輸入圖片說明

現在我運行查詢

SELECT * FROM `studentregistrations`
ORDER BY `studentregistrations`.`studentID`  DESC, `studentregistrations`.`studentName`

我得到的結果是

在此處輸入圖片說明

我想解釋一下它是如何工作的。 因為讓我感到困惑,它應該給出結果,例如studentID為降序, studentName為升序。

我檢查了以下答案,但未得到任何適當的解釋

MySQL查詢順序由多個項目

PHP MySQL按兩列排序

我認為您的期望是,列是獨立排序的,因此所有學生姓名均按字母順序排列,所有學生ID均按降序排列,而與姓名無關。 如果發生這種情況,您將得到錯誤的名稱旁邊的學生證的結果,因此幸運的是不會發生。

而是按第一列排序,然后按下一列排序。 次要排序僅適用於第一列中具有相同值的組。

因此,如果您有10個具有相同ID的學生,則對於該ID,他們的姓名將按字母順序排序。 但是,由於ID是唯一的,因此二級排序是無用的。

例如,使用

ORDER BY UniversityId, StudentName

這樣,您將獲得一個列表,其中將同一所大學的所有學生分組在一起,並且在這些組中,他們按名稱的字母順序進行排序。

當您使用多列進行排序時,第二列的順序只會影響第一列中兩個或多個值相等時的順序。 如果第一列中的所有值都是唯一的,則其他順序列無關緊要。

您所查詢的第一批訂單的學生證,然后緊接着,命令把任何“關系”的學生姓名。

不可能完全履行您的兩個訂單,因為這樣會出現行/列不匹配的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM