首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql按多列不同方向排序

mysql按多列不同方向排序
EN

Stack Overflow用户
提问于 2016-02-03 10:48:56
回答 3查看 2.3K关注 0票数 1

我有桌子。

表结构

现在我运行查询

代码语言:javascript
复制
SELECT * FROM `studentregistrations`
ORDER BY `studentregistrations`.`studentID`  DESC, `studentregistrations`.`studentName`

我得到的结果是

我想要解释一下它是如何工作的。因为我感到困惑的是,它应该给出结果,就像studentID是降序的,studentName是按升序的。

我核对了下面的答案,但没有得到任何正确的解释。

mysql query order by multiple items

PHP MySQL Order by Two Columns

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-03 10:52:21

我认为您的期望是,这些列是独立排序的,所以所有学生的名字都是按字母顺序排列的,所有的学生ids都是按降序排列的,在名字上是独立的。如果发生这种情况,您将得到一个学生id在错误名称旁边的结果,因此幸运的是,没有发生这种情况。

相反,它首先按第一列排序,然后按下一列排序。次要排序仅适用于第一列中具有相同值的组。

因此,如果有10个学生的ID相同,那么他们的名字将按字母顺序排列。但是,由于ID是唯一的,二次排序是无用的。

例如,使用

代码语言:javascript
复制
ORDER BY UniversityId, StudentName

这样的话,你就会有一个列表,其中同一所大学的所有学生都分组在一起,在这些组中,他们是按名字按字母顺序排列的。

票数 5
EN

Stack Overflow用户

发布于 2016-02-03 10:51:44

使用多列进行排序时,第二列的顺序仅在第一列中两个或多个值相等时才会影响排序顺序。如果第一列中的所有值都是唯一的,则其他顺序列并不重要。

票数 3
EN

Stack Overflow用户

发布于 2016-02-03 10:51:55

您的查询首先根据学生id订购,然后再按学生名订购任何“领带”。

这是不可能让你的两个订单的付款全额,因为那样就会有行/列不匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35174951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档