COALESCE
发表于|更新于
|浏览量:
沉默是最好的蔑视——康格里夫
分享一个关键字COALESCE获取第一个非空数据,表结构如下

执行sql:
1 | SELECT COALESCE(username,password) FROM `user_detail` |

相关推荐
2020-08-20
mysql一次给数据库所有表加字段
执行脚本 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950DROP PROCEDUREIF EXISTS addColumn;DELIMITER $$CREATE PROCEDURE addColumn () BEGIN-- 定义表名变量 DECLARE s_tablename VARCHAR ( 100 );/*显示表的数据库中的所有表SELECT table_name FROM information_schema.tables WHERE table_schema='databasename' Order by table_name ;*/#显示所有 DECLARE cur_table_structure CURSOR FOR SELECT table_name FROM INFORMATION_SCHEMA.TABLES -- databasename = 数据库名称 WHERE table...
2021-12-29
orderBy排序,null在最后
优于别人,并不高贵,真正的高贵应该是优于过去的自己。——海明威 我们进行排序查询时: 1SELECT * FROM `user` ORDER BY username 可以看到null值排到了最上 如果我们要将null值排到最下方可以使用: 1SELECT * FROM `user` ORDER BY ISNULL(username),username 执行结果: 这是因为ISNULL函数将其转换为了0和1,我们可以顺带查询出来看看: 1SELECT *,ISNULL(username) FROM `user` ORDER BY ISNULL(username),username
2021-12-27
h2database
走的慢的人,只要他不丧失目标,也比漫无目的徘徊的人走得快。——莱辛 首先新建一个项目,勾选MP和H2 编写配置文件 1234567891011121314151617# DataSource Configspring: datasource: driver-class-name: org.h2.Driver schema: classpath:db/schema-h2.sql data: classpath:db/data-h2.sql url: jdbc:h2:mem:test username: root password: test# Logger Configlogging: level: com.baomidou.mybatisplus.samples.quickstart: debugmybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 然后是数据表结构以及数据文件: schema-h2.sql...
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匹配多行,则只会更新一行,所以我们需要避免在有多个唯一索引的表上使用本语法 我们在表内没...
2021-02-25
mysql中条件函数
世上有味之事,包括诗、酒、哲学、爱情,往往无用。吟无用之诗,醉无用之酒,读无用之书,钟无用之情,终于成一无用之人,却因此活得有滋有味。——周国平《风中的纸屑》 在我们日常开发中,有时可能会在SQL中写一些条件,例如这里一个例子 这里有这样一张表,数据如下: 如果我们需要把未认证(状态为NOT_AUTH)的用户放到前面排序显示,在不影响分页的情况下,我们可以这么写 1SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC 这里使用到了MYSQL的IF函数 1IF([条件],[为true时值],[为false时值]) 例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的 我们则可以使用MYSQL中的CASE、WHEN、THEN、ELSE、END一套去做 12345SELECT *,( CASE WHEN STATUS = 'AUTHING' THEN 0 WHEN STATUS = ...
2021-02-08
mysql默认值
时穷节乃见,一一垂丹青。一一文天祥 如果我们在编写SQL时需要给一个默认值,例如查询或者编辑的时候,可以使用mysql函数IFNULL 例如这里我们表内有两条数据 然后我们编写SQL,如果我们用户名为null,我们默认填充一个unknown 1SELECT id,IFNULL(username,'unknown') username FROM `user` 在编辑的时候也可以用 1UPDATE user set username = IFNULL(`username`,'achao') where id = 2 这里如果我们的username为null,就会被修改成achao,但如果已经有值了,则不会进行修改

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