在数据库查询时,常常需要排序,而有时排序条件可能有多个.
如数据库:
a
b
①.01
排序后:
语句:
SELECT
A.a
,
A.b
FROM
TABLE
A
ORDER
BY
ASC
DESC
其中ASC连接多条排序,且与后一条查询之间有逗号隔开!
先建个测试表
MySql order by 多字段排序
结果很明显:单一字段排序的时候,其他字段出现的顺序是自然排序的
下面为正确的使用
对比code,name的单个字段降序排序,我们可以发现, 使用 order by code desc, name desc的时候,MySQL会先以code进行降序排序,在code进行降序排序该基础上,再使用name进行降序排序.
最后:
order by concat(code, name) desc的效果等同于 order by code desc, name desc
ORDER BY 默认按升序排列,所以呢 ASC (升序)子句是可选的.
另外,还可以按降序排列,为此可以使用 DESC(降序).
按从左到右的顺序依次根据 ORDER BY 子句中指定的列进行排序.
指定用于排序的列时,如果使用的是 SELECT 子句中列的数字位置,那么指定的数字不能超过 SELECT 子句中指定的列数.( 不能超出索引 )
通常,可以按 SELECT 子句中未指定的列进行排序,但必须指定列名.然而,如果在查询中使用了GROUP BY 或 DISTINCT 子句,就不能按SELECT 子句中未指定的列进行排序.
要求:显示部门编号为 10 的员工的姓名、职位和薪水,并根据薪水按从低到高的顺序排列想获得上面这样的数据结果
如果想对表中多个字段进行不同的排列如工资表按照升序排列,年龄按照降序排列
可以再ORDER之后用逗号隔开不同排列的字段
这样写吧:
select * from (表明)
order by is_pro desc,posdate desc;
这样排有个不好的就是他会把推荐的也按倒叙排列,不过到是能实现先1,后0
当ORDER BY后面有多个排序字段的时候,第一个字段是主关键字,先按第一个字段排序,只有第一个字段值相同的,才按第二个字段进行排序,如果有第三个字段、而且第二个字段相同,才考虑按第三个字段排序,更多字段道理相同.
以上就是土嘎嘎小编为大家整理的mysql怎么两次排序相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!