mysql排序之if(isnull(字段名),0,1),fild 或者 if(isnull(字段名),1,0),fild
最近在使用mysql排序的时候,比如按照sort排序,于是 : select filds from table order by sort asc
但null排在前面。
看到同事是这样处理的:IF(ISNULL(sort1),1,0), sort1
。
默认情况下,mysql将null算作最小值。如果想要手动指定null的顺序,可以这样处理:
1. 将null强制放在最前(默认就是这样)
SELECT * FROM BGM_LIST ORDER BY if(isnull(SORT),0,1),SORT ASC //null, null, 1,2,3,4
2. 将null强制放在最后
SELECT * FROM BGM_LIST ORDER BY if(isnull(SORT),1,0),SORT ASC //1,2,3,4,null,nullSELECT * FROM BGM_LIST ORDER BY if(isnull(SORT),1,0),SORT DESC // 4,3,2,1,null,null
3. 解释
以if(isnull(字段名),0,1),fild
为例,它的意思是将该字段根据是否为null值分成两部分,值为null行相当于得到了一个隐含的排序属性0,值为非null的行相当于得到了一个隐含的排序属性1,在排序的时候,先根据这一隐含属性进行升序排列,因为if(isnull(字段名),0,1),fild
相当于if(isnull(字段名),0,1),fild asc
省略了asc而已,所以自然地,排序字段为null的那些行(隐含排序属性)会在最前。if(isnull(字段名),1,0)
反之。
参考:https://www.jianshu.com/p/04b74770d731
mysql排序之if(isnull(字段名),0,1),fild 或者 if(isnull(字段名),1,0),fild相关推荐
- php mysql 排序规则_php 数组排序以及按照某个字段排序
如果你已经使用了一段时间PHP的话,那么,你应该已经对它的数组比较熟悉了--这种数据结构允许你在单个变量中存储多个值,并且可以把它们作为一个集合进行操作. 经常,开发人员发现在PHP中使用这种数据结构 ...
- mysql 排序字段 添加索引吗_mysql需要在哪些字段上加索引?
mysql需要加索引的字段:1.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引:2.经常与其他表进行连接的表,在连接字段上应该建立索引:3.分组字段或者排序字段应该创建索引:4.选择 ...
- Mysql数据库(1.表的约束,以及数据表相关操作和字段名的相关操作)
1.windows10中命令行进入mysql mysql -u root -p 然后输入数据库的密码即可 MySQL创建表并设置约束 1.1创建表,设置id为主键 (primary ...
- MySQL 排序、分页查询、聚合查询
文章目录 1. 排序 2. 分页查询 3. 聚合查询 3.1 分组聚合 GROUP BY 练习 LeetCode 176. 第二高的薪水 练习 LeetCode 177. 第N高的薪水 练习 Leet ...
- mysql编号用什么类型_mysql 之编码配置、引擎介绍、字段操作、数据类型及约束条件...
数据库的配置 # 通过配置文件统一配置的目的: 统一管理 服务端(mysqld) 客户端(client) 配置了mysqld(服务端)的编码为utf8, 那么再创建的数据库,默认编码都采用utf8. ...
- MySQl排序,别名
一.排序 1.按照关键字排序 ASC:是按照升序进行排序的,是默认的排序方式,即 ASC 可以省略.SELECT 语句中如果没有指定具体的排序方式,则默认按 ASC方式进行排序 DESC:是按降序方式 ...
- 死磕数据库系列(二十):MySQL 数据库 DDL、DML、DQL、DCL 语言理论与实践(sql 8.0 版)...
点关注公众号,回复"1024"获取2TB学习资源! 今天,民工哥带大家一起来学习一下 MySQL 数据库的 DDL.DML.DQL.DCL 这几种语言的理论知识与实践.如有帮助,请 ...
- MySQL 排序规则简介
在日常工作中,对于MySQL排序规则,很少关注,大部分时候都是直接使用字符集默认的排序规则,常常忽视了排序规则的细节问题,了解排序规则有助于更好的理解MySQL字符比较和排序相关的知识 简述 说起排序 ...
- mysql 排序后 下一条记录_Mysql如何使用order by工作
日常开发中,我们经常要进行字段的排序,但是我们大多不知道排序是如何执行的,今天我们就说说order by 的执行逻辑, CREATE TABLE `t` (`id` int(11) NOT NULL, ...
- mysql 排序查询核心
文章目录 #进阶3:排序查询 /* 语法: select 查询列表 from 表名 [where 筛选条件] order by 排序的字段或表达式; 特点: 1.asc代表的是升序,可以省略 desc ...
最新文章
- 循环获取结构体中的健名与值的实现
- 我说分布式事务之最大努力通知型事务
- twitter storm学习 - 安装部署问题汇总
- php 二叉树 与赫夫曼树
- Python之PIL之绘图:基于Python的PIL库绘制各种图形、添加文字等
- 我们可以无损放大一个Transformer模型吗?
- 如何设计良好的viewcontroller
- Xampp 配置出现403无法访问
- 聚合丁苯橡胶(SSBR)行业调研报告 - 市场现状分析与发展前景预测
- Android -- Messager与Service
- iOS开发-类簇(Class Cluster)
- Mac系统镜像文件(Monterey-Sierra,加部分OS X)
- 【区块链108将】区块链追溯产品起源,让每一个产品都是放心产品
- SIM卡中的ef文件介绍
- Excel - 斜线表头制作
- Navicat报错:2003 - Can‘t connect to MySQL server on ‘xxx‘ (10060 “Unknown error“)
- 拯救者y7000p进入BIOS
- 多协议直播发布工具和接收工具
- Python问题:FileNotFoundError: [WinError 2] 系统找不到指定的文件。(已解决)
- 移动硬盘插入无显示,不用格式化-修复方法