mysql order by 语句对null字段的排序

介绍

默认情况下,MySQL将null算作最小值。如果想要手动指定null的顺序,可以使用:
1.将null强制放在最前:
    if(isnull(字段名),0,1) asc //asc可以省略
2.将null强制放在最后
    if(isnull(字段名),0,1) dsc
    if(isnull(字段名),1,0) asc //asc可以省略

解释

对于这种使用方式的理解:
以if(isnull(字段名),0,1)为例,它的意思是将该字段根据是否为null值分成两部分,值为null行相当于得到了一个隐含的排序属性0,值为非null的行相当于得到了一个隐含的排序属性1,在排序的时候,先根据这一隐含属性进行升序排列,因为if(isnull(字段名),0,1)相当于if(isnull(字段名),0,1) asc省略了asc而已,所以自然地,排序字段为null的那些行(隐含排序属性)会在最前。对于将null强制放在最后的语句的理解以此类推。

觉得写的还不错的小伙伴,请作者喝杯咖啡☕️ ,支持一下。
如有侵权请立即与我们联系,我们将及时处理。联系邮箱:865934097@qq.com

公众号文章:公众号文章
关注公众号:在这里插入图片描述