当数据列Column中有空值时排序会以涳值最小优先;
如果要将Null排在后面,则:
如果要将Null排在前面则:
默认情况下MySQL将null算作最小值。如果想要手动指定null的顺序可以使用:
1.将null强制放在最前:
2.将null强制放在最后
对于这种使用方式的理解:
以if(isnull(按多个字段进行排序时稱为什么名),0,1)为例,它的意思是将该按多个字段进行排序时称为什么根据是否为null值分成两部分值为null行相当于得到了一个隐含的排序属性0,徝为非null的行相当于得到了一个隐含的排序属性1在排序的时候,先根据这一隐含属性进行升序排列因为if(isnull(按多个字段进行排序时称为什么洺),0,1)相当于if(isnull(按多个字段进行排序时称为什么名),0,1) asc省略了asc而已,所以自然地排序按多个字段进行排序时称为什么为null的那些行(隐含排序属性)會在最前。
对于将null强制放在最后的语句的理解以此类推
下面在MySQL 5.6上做一个测试:
表中已经有6条数据,分别为:
第1、2步结果显示:默认情况下null為最小
第3、4步结果显示:通过if(isnull(num),0,1),不管后面的num按多个字段进行排序时称为什么是升序还是降序null值都被强制指定在最前。
第5、6步结果显示:通过if(isnull(num),1,0) 不管后面的num按多个字段进行排序时称为什么是升序还是降序,null值都被强制指定在最后
当数据列Column中有空值时排序会以涳值最小优先;
如果要将Null排在后面,则:
如果要将Null排在前面则: