MYSQL 排序规则
ORDER BY可以按一个或多个(最多16个)字段排序查询结果,可以是升序(ASC)也可以是降序(DESC),如果缺省,则是升序。
ORDER BY中如果定义了多个字段,则按照字段的先后顺序排序,在最左边的优先级最高。
f1用升序, f2降序,SQL该这样写
ORDER BY f1, f2 DESC; #ORDER BY f1 ASC, f2 DESC
MySQL自定义排序
对于特殊的排序,可以使用 mysql field自定义排序函数的格式
order by field(value,str1,str2,str3,str4,,,,,,strn)
其中value后面的参数自定义(可以是字段,可以是函数字段组合),不限制参数个数。将获取出来的数据根据str1,str2,str3,str4等的顺序排序
SELECT * FROM test ORDER BY field( id, 7, 8, 6) AND reg_time >= '2016-01-01'
GROUP BY强制不排序
order by null
有的sql语句在执行完毕之后把结果给排序了,而我们对该结果没要求有排序效果, 这个排序是多余的,反而还消耗mysql的资源。为了使得获得数据的自然性、不要排序、降低mysql资源的开销,可以强制不排序。
select cat_id,count(goods_id) from sw_goods group by cat_id ORDER BY null