Mysql 按多列排序应在序列中
多列排序是顺序型还是非顺序型Mysql 按多列排序应在序列中,mysql,sql,sql-order-by,Mysql,Sql,Sql Order By,多列排序是顺序型还是非顺序型 skill_id student_id 1 23 2 24 5 26 3 20 7 29 我想问你的是,我正试着按2列排序,它们是这样的 order by skill_id DESC, student_id ASC 在1st查询中,我写了如上所述的内容 在2nd查询中,我像order by student\u id ASC,skill\u
skill_id student_id
1 23
2 24
5 26
3 20
7 29
我想问你的是,我正试着按2列排序,它们是这样的
order by skill_id DESC,
student_id ASC
在1st查询中,我写了如上所述的内容
在2nd查询中,我像order by student\u id ASC,skill\u id DESC
这两个结果是相同的还是不同的?如果有差异,你能告诉我怎么做吗?它们是不同的。它首先按第一列对结果进行排序。然后在与第一列值相同的组中,按第二列排序。对于每一列,依此类推 如果没有第一列的任何副本,则会忽略排序依据中的剩余列。结果不同。 在order by子句中,列的顺序至关重要。 在您的特定示例中,第二列实际上没有意义,只有第一列,因为示例数据中的任何列中都没有重复的值
SELECT *
FROM table
order by skill_id DESC,
student_id ASC
skill_id student_id
7 29
5 26
3 20
2 24
1 23
SELECT *
FROM table
order by student_id ASC, skill_id DESC
skill_id student_id
3 20
1 23
2 24
5 26
7 29
如果一列中存在重复值,则order by中的第二列将控制如何对第二列进行排序。以下是使用不同样本数据的相同查询:
SELECT *
FROM @T
order by skill_id DESC,
student_id ASC
skill_id student_id
7 9
7 29
5 6
5 26
3 0
3 20
2 2
2 24
1 3
1 23
SELECT *
FROM @T
order by student_id ASC, skill_id DESC
skill_id student_id
3 0
2 2
1 3
5 6
7 9
3 20
1 23
2 24
5 26
7 29
查询只需按以下顺序读取第一个条件:
SELECT *
FROM table
ORDER BY skill_id DESC,
student_id ASC
是的,按顺序排列的列的顺序很重要。从橱柜里拿出一些杯子和盘子。按大小、形状和颜色排列。现在按颜色、形状和大小排列。它们的顺序是一样的吗?