zoukankan      html  css  js  c++  java
  • MySQL中order by排序时,数据存在null咋办

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

    问题:

    网页要实现table的行鼠标拖拽排序,我用AngularJs集成了一个TableDnD开源插件,可以实现,然后在数据库表中增加一个排序字段indexId,但是原来的大量数据是没有排序过的,所以该字段为null。

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

    写个测试表模拟一下,如下效果:

    MySQL中order by排序时,数据存在null咋办

    解决办法:

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

    MySQL中order by排序时,数据存在null咋办

    • 重新生成一列,比如agenull,利用is null操作符,把NULL值的行变成1,非NULL值的行变成0,先对该字段排序,再对age排序

    MySQL中order by排序时,数据存在null咋办

    • 直接利用isnull函数对age列求值,跟第一种方法的道理是一样的

    MySQL中order by排序时,数据存在null咋办

    方法同样试用SQL Server和Oracle等数据库

  • 相关阅读:
    C#可空类型 T?
    Unity踩过的坑
    Unity可视化数据:创建图表
    unity3d屏幕截图功能
    unity3d插入android有米广告
    Unity调用PC摄像头
    使用Unity的50个建议
    Unity3d流光效果
    unity3d中的Quaternion.LookRotation
    Unity3D中可重载虚函数的总结
  • 原文地址:https://www.cnblogs.com/rxbook/p/6683005.html
Copyright © 2011-2022 走看看