SQL ORDER BY 多列排序
SQL ORDER BY 多列排序的使用
最近学习My Sql的时候对order by的多列排序逻辑不是很清楚,查阅了一些资料加上自己动手做了几个小实验清楚了不少,本结论仅适用于实验条件下成立(列值为 int)先上结论:
如:order by 列名1,列名2,列名3…;
若列名后不加限制条件,将直接按照离order by语句最近的无限制条件的列名排序,即列名1,排序方式默认升序。
如:SELECT * FROM 表名 ORDER BY 列名1>5,列名2;,将按照列名2的值进行排序,而列名1>5的作用是分组,输出结果将按照:列名1值<=5为第一组,列名1>5为第二组的方式,分成两组,两组分别按照列名2的值进行排序,下面以代码为例具体说明:
//建立一个无序表这样更能看出实验结果
create table test (
a int,
b int,
c int
);
insert into test (a,b,c)values
(9,4,