MySQL中order by排序遇到NULL值的问题及解决
更新时间:2025年10月24日 15:00:31 作者:文&文丑
文章讲述了使用ISNULL()函数在MySQL中处理NULL值时遇到的问题,特别是在处理经纬度计算出的距离字段时,问题在于ISNULL()函数在排序时不能正确处理NULL值,解决方法是通过在字段前面加上负号来改变NULL值的排序顺序,从而实现正确的排序
MySQL中order by排序遇到NULL值
使用ISNULL(字段)不生效
具体原因不清楚!
具体字段是经纬度计算出来的距离,小数位比较多,
正常查询如下:

然后使用的 ISNULL(字段)
排序不成功的结果如下:

问题解决
默认情况不下,MySQL会认为NULL值比其它类型的数值小,利用MySQL中的一个小技巧,在字段前面加上一个负号,也就是减号,ASC改为DESC ,DESC改为ASC

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
浅谈sql连接查询的区别 inner,left,right,full
下面小编就为大家带来一篇浅谈sql连接查询的区别 inner,left,right,full。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-10-10
mysql中varchar类型的日期进行比较、排序等操作的实现
在mysql使用过程中,日期一般都是以datetime、timestamp等格式进行存储的,但有时会因为特殊的需求或历史原因,日期的存储格式是varchar,那么应该怎么进行比较和排序等问题,本文就来介绍一下2021-11-11


最新评论