Mysql中的 IFNULL 函数的详解
创始人
2024-05-30 22:31:28
0

目录

一、概念

二、语法

三、Demo 举例说明

创建表

加入数据

运行结果

3.1举例一

3.2举例二

3.3举例三

3.4举例四

注意事项


一、概念

在mysql中IFNULL() 函数用于判断第一个表达式是否为 NULL,如果第一个值不为NULL就执行第一个值。第一个值为 NULL 则返回第二个参数的值。

使用技巧见:3.2举例二  比较常用

二、语法

IFNULL(a, b)

三、Demo 举例说明

创建表

create table student_one(
sno varchar(20) not null primary key,
sname varchar(20) not null,
ssex varchar(20) not null,
sbirthday datetime,
class varchar(20)
)charset=utf8;

加入数据

insert into student_one values('1','陈奇','男','2000-11-02','1');
insert into student_one values('2','陈飞','男','1999-12-05','2');
insert into student_one values('3','周杰','女','1989-03-01','3');
insert into student_one values('4','昆凌','男','1989-04-15','4');
insert into student_one values('5','王丽','女','1999-05-16','5');
insert into student_one values('6','蔡蔡','男','2000-08-17','6');

运行结果

在这里插入图片描述

3.1举例一

第一个参数不为NULL,返回第一个参数,下面的代码中’hello’不为NULL,就返回的是’hello’

SELECT IFNULL('hello', 'world');

 运行结果
在这里插入图片描述

3.2.1举例二

从student_one表里面查询sno/sname字段,如果sno字段不为空,就返回sno字段,如果为空就返回sname字段。且取别名为‘字段结果’

SELECT IFNULL(sno,sname) AS '字段结果' FROM student_one

 运行结果
在这里插入图片描述

从student_one表里面class=4的行查询sno或者sname字段

SELECT IFNULL(sno,sname) FROM student_one WHERE class=4

 运行结果
在这里插入图片描述

3.2.2 业务场景下使用举例

或者 多表 字段 定义为某个字段 场景如:

ifnull( dga.code ,dr.code) agentCode, 含义说明:

总代code,经销商code 作为 别名agentCode的值。

使用场景:当经销商上级有总代理时 使用总代理的code,否则使用经销商的code的场景。

 selectds.type storeType,dr.type rtm,ifnull( dga.code ,dr.code) agentCode,ifnull(dga.agent_name_cn ,dr.name_cn) agentName,dr.code resellerCode,dr.name_cn resellerName,ds.code codeFROM dg_store dsLEFT JOIN dg_store_type dst ON dst.id = ds.typeLEFT JOIN dg_reseller dr ON dr.code = ds.reseller_codeLEFT JOIN dg_general_agent dga ON dga.id = dr.agent_id

查询结果示例如下

 

3.3举例三

从student_one表里面查询sno=10的class字段,如果表中没有class=10的字段,就会返回0

SELECT IFNULL((SELECT class FROM student_one WHERE sno = 10),0);

 运行结果
在这里插入图片描述

3.4举例四

从student_one表里面查询sno等于1的sname字段,如果为空,就从student_one表里面查询sno等于2的ssex字段

SELECT IFNULL((SELECT sname from student_one WHERE sno=1),(SELECT ssex from student_one WHERE sno=2));

 运行结果
在这里插入图片描述

从student_one表里面查询sno等于1的sname字段,如果为空,就从student_one表里面查询sno等于2的ssex字段。如果前面的都为空,就从student_one表里面查询sno等于2的sbirthday字段

SELECT IFNULL(IFNULL((SELECT sname from student_one WHERE sno=1),(SELECT ssex from student_one WHERE sno=2)),(SELECT sbirthday from student_one WHERE sno=2));

 运行结果
在这里插入图片描述

注意事项

1.查询语句要用括号括起来
2.一个IFNULL只能对应一条判断语句,
3.IFNULL仅能查询一个字段,否则会报错

相关内容

热门资讯

修改工具教程版!老友恒仁麻将智... 老友恒仁麻将这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这...
修改工具教程版!Newpk俱乐... 修改工具教程版!Newpk俱乐部智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一...
修改工具教程版!NG-Poke... 您好:NG-Poker确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打...
修改工具教程版!友乐斗地主智能... 修改工具教程版!友乐斗地主智能插件是真的,分享详细开挂攻略1、让任何用户在无需AI插件第三方神器的情...
修改工具教程版!牵手常德棋牌智... 您好,牵手常德棋牌这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏...
修改工具教程版!么么棋牌智能插... 修改工具教程版!么么棋牌智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一个“必胜...
修改工具教程版!同城字牌智能插... 修改工具教程版!同城字牌智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一个“必胜...
修改工具教程版!世外桃源智能插... 修改工具教程版!世外桃源智能插件是真的,分享详细开挂攻略一、世外桃源AI软件牌型概率发牌机制”必胜“...
修改工具教程版!金枝玉叶智能插... 您好,金枝玉叶这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
修改工具教程版!东方互娱智能插... 修改工具教程版!东方互娱智能插件是真的,分享详细开挂攻略;原来确实真的有挂(需添加指定薇719890...
修改工具教程版!扣点麻将智能插... 您好,扣点麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
修改工具教程版!猪猪侠智能插件... 您好,猪猪侠这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打牌...
修改工具教程版!好友跑得快智能... 好友跑得快这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款...
修改工具教程版!EV扑克智能插... 亲,EV扑克这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,EV扑克的开挂软件,名...
修改工具教程版!川娱竞技智能插... 修改工具教程版!川娱竞技智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一个“必胜...
修改工具教程版!闲来老版本智能... 修改工具教程版!闲来老版本智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一个“必...
修改工具教程版!云扑克智能插件... 亲,云扑克这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,云扑克的开挂软件,名称叫...
修改工具教程版!黄金岛跑胡子智... 修改工具教程版!黄金岛跑胡子智能插件是真的,分享详细开挂攻略一、黄金岛跑胡子AI软件牌型概率发牌机制...
修改工具教程版!吉祥互娱智能插... 修改工具教程版!吉祥互娱智能插件是真的,分享详细开挂攻略;原来确实真的有挂(需添加指定薇719890...
修改工具教程版!闲趣互娱智能插... 修改工具教程版!闲趣互娱智能插件是真的,分享详细开挂攻略是一款可以让一直输的玩家,快速成为一个“必胜...