当前位置: 首页 > news >正文

mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名

mysql排序之if(isnull(字段名),0,1),字段名 或者 if(isnull(字段名),1,0),字段名

默认情况下,MySQL将null算作最小值。如果想要手动指定null的顺序,可以这样处理:

  1. 将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

  1. 将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

  1. 解释

以 if(isnull(字段名),0,1) , 字段名 ASC 为例

  • 将该字段根据是否为 null 值分成两部分,值为 null 行相当于得到了一个隐含的排序属性0,值为非 null
    的行相当于得到了一个隐含的排序属性1。
  • 先根据这一隐含属性进行排列,所以排序字段为null的那些行(隐含排序属性)会在最前。然后其他非null的行按照ASC或者DESC排序
http://www.lryc.cn/news/91532.html

相关文章:

  • 华为OD机试真题 Java 实现【递增字符串】【2023Q1 200分】,附详细解题思路
  • 合并文件解决HiveServer2内存溢出方案
  • 韧性数据安全体系缘起与三个目标 |CEO专栏
  • 华为OD机试真题 Java 实现【火车进站】【牛客练习题】
  • c#快速入门(下)
  • 基于深度学习的目标姿态检测方法_kaic
  • Pycharm设置Python每个文件开头自定义模板(带上声明字符编码、作者名、时间等)
  • Gem相关操作命令
  • 软件测试2023年行情怎么样?仔细讲解!
  • 【1130. 叶值的最小代价生成树】
  • Linux各个目录的全称及含义
  • Cookie和Session原理详解
  • 小程序自动化测试
  • 【linux系统操作】 - 技术一览
  • yield和sleep 区别
  • Redis 注册服务,自动启动
  • 华为OD机试真题 Java 实现【字符统计】【2023 B卷 100分】
  • ASP.NET Core MVC 从入门到精通之自动映射(一)
  • 4. WebGPU 存储缓冲区 (WebGPU Storage Buffers)
  • ChatGPT 插件功能深度解析:acquire、scholarai、form
  • 【面试集锦 - 汽车电子 - ASPICE]
  • 深入探索Vue.js响应式原理及其实现机制
  • Spark SQL概述、数据帧与数据集
  • c# cad 二次开发 类库 CAD表格的操作,给CAD添加一个表格
  • 单点登录的两种实现方式,分别有啥优缺点?
  • opencv_c++学习(二十七)
  • 探查chatGPT插件:Outschool,resume,webhooks
  • 【学习笔记】Unity基础(七)【uGUI基础、利用render Texture实现小地图功能】
  • yolov5配置错误记录
  • 全平台数据 (数据库) 管理工具 DataCap 1.10.0 发布