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

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

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

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
