MySQL中order by排序时,数据存在null,排序在最前面
创始人
2025-01-15 12:09:49
0

order by排序是最常用的功能,但是排序有时会遇到数据为空null的情况,这样排序就会乱了,这里以MySQL为例,记录我遇到的问题和解决思路。

sql 排序为 null 值问题:

排序时我们用 receive_date(一个统计的时间,里面有较多的null) 排序,那么在倒序时因为 receive_date 的值 有null的 所以会排在最前面,有值的排在后面。

order by managerapply.receive_date desc, mi.item_code

这样order by时,为null的数据就会排在最前边。

解决办法:

法一:加负号

最优办法:利用MySQL中的一个小技巧,在字段前面加上一个负号,也就是减号,ASC改成DESC ,DESC改成ASC

order by -managerapply.receive_date asc, mi.item_code

好家伙,忘记时间加负号那是啥?所以该方法不可以取,针对字符类或者数值类的可以吧。如age?

法二:排序字段加 is null

我们可以在排序添加加上 is null 这个在加排序条件 空值就会排在后面,其他正常排序

order by managerapply.receive_date is null, managerapply.receive_date desc, mi.item_code

法三:新增一列排序字段的null值映射

如:重新给age生成一列,比如receive_datenull,利用is null操作符,把NULL值的行变成1,非NULL值的行变成0,先对该字段排序,再对age排序(这种方法第二种方法的解读,明白is null的用法和原理!!!)

相关内容

热门资讯

透视指南书!wepoker安装... 透视指南书!wepoker安装教程,广东雀神智能辅助照片(辅助)好像真的有教程(哔哩哔哩)1.广东雀...
3分钟积累!温州茶苑手机辅助器... 3分钟积累!温州茶苑手机辅助器,蛮王大厅辅助插件(辅助)原来存在有工具(哔哩哔哩)1、点击下载安装,...
透视办法!xpoker辅助控制... 透视办法!xpoker辅助控制,福建天天开心辅助真实性(辅助)好像是真的有神器(哔哩哔哩)1、上手简...
无独有偶!三哥玩透视辅助,po... 无独有偶!三哥玩透视辅助,poker world辅助器(透视)开挂辅助器(哔哩哔哩)1、起透看视 三...
第3分钟机巧!金手指辅助工具,... 您好,亿游十三道辅助这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054】很多玩家...
透视资料!newpoker怎么... 透视资料!newpoker怎么安装脚本,好友赣南辅助器(辅助)果然是有app(哔哩哔哩)1、超多福利...
2026版辅助挂!心悦游戏辅助... 2026版辅助挂!心悦游戏辅助,fishpoker透视(透视)开挂辅助软件(哔哩哔哩)1、进入游戏-...
7分钟指南书!贪玩透视辅助,微... 7分钟指南书!贪玩透视辅助,微信卡农辅助(辅助)都是真的有修改器(哔哩哔哩)微信卡农辅助辅助器是一种...
此事备受玩家关注!小程序牵手跑... 此事备受玩家关注!小程序牵手跑的辅助,pokemmo辅助器脚本下载(透视)开挂辅助器(哔哩哔哩)1、...
透视方针!佛手在线大菠萝为什么... 透视方针!佛手在线大菠萝为什么都输,四川途游辅助软件下载(辅助)一直是真的有软件(哔哩哔哩)1、游戏...