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值一个确定的值,有了确定的值,这样在排序时也就容易处理了,这便是解决问题的小思路。

相关推荐

  1. MySQL 按指定字段自定义列表排序

    2024-07-12 11:00:04       29 阅读
  2. mysql中文首字母排序查询

    2024-07-12 11:00:04       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 11:00:04       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 11:00:04       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 11:00:04       57 阅读
  4. Python语言-面向对象

    2024-07-12 11:00:04       68 阅读

热门阅读

  1. 常用的Web前端框架:深入探索与实用指南

    2024-07-12 11:00:04       18 阅读
  2. 使用Python自动识别和合并PDF中的跨页表格

    2024-07-12 11:00:04       19 阅读
  3. 如何用CSS3画一个三角形?

    2024-07-12 11:00:04       23 阅读
  4. Spring Boot实战:无缝对接OpenAI

    2024-07-12 11:00:04       20 阅读
  5. MVVM和MVC的原理以及它们的区别

    2024-07-12 11:00:04       24 阅读
  6. stopSelf 会走ondestory吗? 怎么关闭server

    2024-07-12 11:00:04       24 阅读
  7. YOLOv10单独推理的封装

    2024-07-12 11:00:04       16 阅读
  8. c#的几种通信

    2024-07-12 11:00:04       18 阅读
  9. 前端代码规范

    2024-07-12 11:00:04       19 阅读
  10. MATLAB——字符串处理

    2024-07-12 11:00:04       20 阅读