mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名
默认情况下,MySQL将null算作最小值。如果想要手动指定null的顺序,可以这样处理:
- 将null强制放在最前
//null, null, 1,2,3,4(默认就是这样)
SELECT * FROM 表名 ORDER BY if(isnull(字段名),0,1),字段名 ASC
//null, null, 4,3,2,1
SELECT * FROM 表名 ORDER BY if(isnull(字段名),0,1),字段名 DESC
- 将null强制放在最后
//1,2,3,4,null,null
SELECT * FROM 表名 ORDER BY if(isnull(字段名),1,0),字段名 ASC// 4,3,2,1,null,null
SELECT * FROM 表名 ORDER BY if(isnull(字段名),1,0),字段名 DESC文章来源:https://www.toymoban.com/news/detail-477337.html
- 解释
以 if(isnull(字段名),0,1) , 字段名 ASC 为例文章来源地址https://www.toymoban.com/news/detail-477337.html
- 将该字段根据是否为 null 值分成两部分,值为 null 行相当于得到了一个隐含的排序属性0,值为非 null
的行相当于得到了一个隐含的排序属性1。 - 先根据这一隐含属性进行排列,所以排序字段为null的那些行(隐含排序属性)会在最前。然后其他非null的行按照ASC或者DESC排序
到了这里,关于mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!