【发布时间】:2016-05-12 12:37:38
【问题描述】:
我有桌子。
表结构是
现在我运行查询
SELECT * FROM `studentregistrations`
ORDER BY `studentregistrations`.`studentID` DESC, `studentregistrations`.`studentName`
我得到的结果是
我想解释一下它是如何工作的。因为我很困惑它应该给出像studentID 是降序的结果,studentName 是升序的结果。
我检查了下面的答案,但没有得到任何正确的解释
【问题讨论】:
-
这里你首先按ID降序排序,然后按名称排序,以防ID相同。由于id不能相同,所以二次排序没用。
-
"...它应该给出像 studentID 降序和 studentName 升序一样的结果。" ——写下你的期望,你期望这个输出是怎样的。它是一个数据库,每一行都是一致的,每个字段都属于某一行。但看起来你想单独拥有每一列。那么它就不是数据库任务了。
-
@ksimka:是的。你说的对。我也这么认为,但是在阅读我在回答中提到的答案时,我认为这个查询也可以。
-
不,不会。假设您有一张带有字母的表,一列是数字,另一列是字母。所以通常它看起来像1-A,2-B,3-C,4-D,......突然你想像你的问题一样订购它。你能指望什么? 23-A、22-B、21-C、……?这是什么数据?它是干什么用的?你打破了一致性。
-
@ksimka:是的。明白你的意思。