欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Mysql排序字段为NULL如何排序

Mysql排序字段为NULL如何排序

2025/10/14 16:51:05 来源:https://blog.csdn.net/csdn565973850/article/details/140371029  浏览:    关键词:Mysql排序字段为NULL如何排序

Mysql排序字段为NULL如何排序

  • 需求背景
  • 需求处理
    • 场景重现
    • 解决方案
  • 最后总结

需求背景

在日常工作中,总是会遇到Mysql排序的问题,其实排序的问题本身并不复杂,只是有一些异常的情况需要特殊处理,下面讲述在Mysql排序时遇到排序字段有NULL时的排序处理。

需求处理

场景重现

Mysql对于排序字段为NULL时,有自身默认的排序规则,当你的Mysql语句是升序时
在这里插入图片描述
可以看到排序字段为NULL的数据排在上面,这个时候我们想要让排序字段为NULL的排在最后怎么处理呢?

解决方案

对于上面的问题如何处理,我们可以引入一个新的排序字段,比如 t1.sort IS NULL sort2 并且把列表顺序也稍作调整,方便我们观察数据结构
在这里插入图片描述
图中我们可以看到,我们引入了sort2字段,用来判断当前t1.sort字段是NULL,当t1.sort为NULL时,sort2为1,反之,sort2为0,然后在排序时先按照sort2升序,结果就是0,1;然后对于sort2排序值相同的,再按照t1.sort升序,结果就是1,2,3,4,5,6,7,10,到这里,我们就解决了Mysql排序字段为NULL时升序放后面的问题。
当然除了上面这个方案,你也可以这样做
在这里插入图片描述
就是在排序时对t1.sort进行判断,如果为NULL,则赋予一个当前排序字段不能达到的较大值,也可以达到目的。

最后总结

其实对于这类字段为NULL,但是又需要排序时用到的字段,你都可以通过类似于这种赋值的思想来考虑处理他,不管是你通过t1.sort IS NULL还是通过IFNULL(t1.sort,9999)来处理,基本原理都是给予排序字段的NULL值一个确定的值,有了确定的值,这样在排序时也就容易处理了,这便是解决问题的小思路。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词