orderBy排序,null在最后
发表于|更新于
|浏览量:
优于别人,并不高贵,真正的高贵应该是优于过去的自己。——海明威
我们进行排序查询时:
1 | SELECT * FROM `user` ORDER BY username |
可以看到null值排到了最上

如果我们要将null值排到最下方可以使用:
1 | SELECT * FROM `user` ORDER BY ISNULL(username),username |
执行结果:

这是因为ISNULL函数将其转换为了0和1,我们可以顺带查询出来看看:
1 | SELECT *,ISNULL(username) FROM `user` ORDER BY ISNULL(username),username |

相关推荐
2021-05-04
mysql导出sql
地位越高,自我评价就越高,自信心多强,能力就有多强。我们总能表现出与环境的和谐平等。——赫兹里特 输入命令 1mysqldump -u root -p [数据库名] > [文件名].sql 然后再输入mysql密码即可 数据库经常备份还是很有必要的
2024-04-22
Mysql的NULLIF
秉性难移。——冯梦龙 NULLIF函数是MySQL中的一个条件函数,用来返回两个表达式的比较结果。具体来说,如果两个表达式相等,NULLIF函数返回NULL;如果不相等,它就返回第一个表达式的值。其基本语法如下: 1NULLIF(expr1, expr2) 其中,expr1和expr2可以是任何类型的表达式,但它们应该是相同的数据类型或者可以隐式转换的类型。 在数学运算特别是除法运算中,除以零会导致错误。使用NULLIF可以有效避免这种错误。例如,我们要计算两个列A和B的比值,可以这样写: 12SELECT A, B, A / NULLIF(B, 0) AS resultFROM your_table; 这里,如果B为0,则NULLIF(B, 0)返回NULL,A / NULL也会返回NULL,从而避免了运行时错误。 在数据导入或处理过程中,我们可能会遇到一些特殊值需要转换为NULL以保持数据的一致性。例如,某些系统中使用-1表示数据缺失,我们可以使用NULLIF来转换这些值: 12SELECT NULLIF(column_name, -1)FROM your_table...
2020-12-05
explain
人们很少做他们相信是对的事,他们做比较方便的事,然后后悔。——鲍勃.迪伦 使用explain+SQL 作用: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询 id select_type table partitions type possible_keys key key_len ref rows filtered Extra id:查询的序列号,包含一组数字,表示查询中执行select字句或操作表的顺序id值越大执行优先级越高,id相同情况下执行顺序从上到下 select_type:查询的类型,主要是用于区别普通查询、联合查询、子查询等的复杂查询simple简单的select查询,不包含子查询、UNION primary子查询的最外层 subquery子查询的内层 derived表示 FROM临时表,这个表被标记为衍生 union在union后面的查询,若union包含在from字句的子查询中,外层select被标记为derived union result从union表获取结果的select t...
2022-02-06
INSERT ... ON DUPLICATE KEY UPDATE Statement
打开mysql文档,总会有新发现。——碧安瑶 我们在使用INSERT语句时,有时会有这样的需求,不存在就新增,存在就更新 此时我们可以使用INSERT ... ON DUPLICATE KEY UPDATE语句 就像mysql官方文档中提到的那样,我们如果将a列设为UNIQUE唯一索引或者主键时,并且当前表已经存在了a=1的数据,对于这种情况,下面两条sql的结果是相等的 当然如果不满足上方条件,则会新增一条数据 1234INSERT INTO t1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;UPDATE t1 SET c=c+1 WHERE a=1; 对于InnoDB引擎的表,此处的新增可能会触发自增列,但修改操作不会触发 如果上方的唯一索引再加一个b列,则上方第一条sql和下方sql结果相等 1UPDATE t1 SET c=c+1 WHERE a=1 OR b=2 LIMIT 1; 注意如果此处a=1 or b=2匹配多行,则只会更新一行,所以我们需要避免在有多个唯一索引的表上使用本语法 我们在表内没...
2025-01-18
nocodb
为了那一句话,流尽血的败北!多少次我都能挺下来。——朝雾卡夫卡的《文豪野犬》 最近在探索一些开源项目时,发现了一个非常有意思且实用的工具 —— NocoDB。它是一个开源的无代码数据库平台,可以帮助开发者将传统数据库(如 MySQL、PostgreSQL 等)转化为一个可视化的表格形式。通过 NocoDB,开发者和非开发者都可以像使用电子表格一样管理数据库内容,非常适合团队协作和快速原型开发。 NocoDB 通过其直观的用户界面,允许用户通过拖拽、点击等方式直接操作数据库中的数据,而无需编写任何 SQL 语句。无论是小型项目还是团队协作,NocoDB 都能极大地提升开发效率,特别是对于那些没有数据库开发经验的用户来说,它提供了一种轻松操作数据库的方式。 NocoDB 的安装和使用非常简单,适合不同操作系统和开发环境。你可以通过以下步骤轻松搭建: 安装首先,你可以通过 Docker 轻松地部署 NocoDB,以下是使用 Docker 部署的步骤: 1docker run -d -p 8080:8080 nocodb/nocodb 执行这条命令后,NocoDB 会在本地启动...
2023-06-06
加唯一索引时候发现已有重复数据删除
说话随便的人,便是没有责任心。——哈代 sql如下 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677-- 查询重复数据idSELECT GROUP_CONCAT( id SEPARATOR ',' )FROM `my_table` GROUP BY `user_id`, `depart_id`, `position_id` HAVING COUNT(*) > 1 AND `user_id` IS NOT NULL AND `depart_id` IS NOT NULL AND `position_id` IS NOT NULL;-- 查询需要删除掉的重复数据SELECT t1.`id`, t1.`user_id`, t1.`depart_id`, t1.`position_id`, t1.`gmt_create...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog