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仅能查询一个字段,否则会报错

相关内容

热门资讯

永远会用安卓系统的手机 亲爱的手机控们,你是否也有那么一款手机,它陪伴你度过了无数个日夜,成为了你生活中不可或缺的一部分?没...
安卓系统怎么添加公众号,安卓系... 你是不是也和我一样,对安卓手机上的公众号情有独钟呢?想要把那些有趣的公众号添加到手机里,随时随地都能...
仿苹果系统怎么改回安卓系统,轻... 你是不是也和我一样,曾经被苹果系统的魅力所吸引,然后不小心把手机换成了安卓呢?现在,突然发现安卓的某...
oppor11plus安卓系统... 你有没有注意到,最近手机圈里又掀起了一股热潮?没错,就是OPPO R11 Plus这款手机。这款手机...
安卓系统重新洗牌教程,从重新洗... 你有没有发现,安卓系统最近好像经历了一场大洗牌?别急,别急,让我来给你详细介绍一下这个安卓系统重新洗...
安卓12系统改画质,尽享极致流... 你有没有发现,最近你的安卓手机好像变得不一样了?没错,就是那个神秘的安卓12系统,它悄悄地给你带来了...
小米11系统是安卓几,探索新一... 你有没有发现,最近小米11这款手机在市场上可是火得一塌糊涂呢!那么,问题来了,小米11的系统是安卓几...
安卓版系统下载安装 你有没有想过,为什么你的手机总是那么卡,那么慢?别急,今天就来给你揭秘,如何让你的安卓手机焕然一新,...
安卓换苹果系统更新多久,体验无... 你有没有想过,当你把心爱的安卓手机换成苹果,那系统更新到底要等多久呢?这可是不少人在换机时都会关心的...
如何升级华为的安卓系统,轻松提... 亲爱的手机控们,你是不是也和我一样,对华为的安卓系统充满了好奇和期待?想要让你的华为手机焕然一新,体...
好用系统插件推荐安卓手机,提升... 你有没有发现,手机用久了,是不是觉得有点力不从心?别急,今天就来给你安利一波好用系统插件,让你的安卓...
x3鸿蒙系统和安卓系统,探索x... 你知道吗?最近手机圈里可是热闹非凡呢!各大品牌纷纷推出新机,而其中最引人注目的莫过于华为的新操作系统...
安卓系统优化手机软件,打造流畅... 你有没有发现,你的安卓手机最近变得有点“慢吞吞”的?别急,别急,今天就来给你支几招,让你的安卓手机焕...
安卓车机系统显示歌词,打造沉浸... 亲爱的车友们,你是否在驾驶过程中,被那美妙的旋律和歌词所吸引,却又因为无法专注于路面而感到困扰?别担...
安卓系统硬件是否损坏 手机突然卡顿,屏幕闪烁不定,是不是安卓系统的硬件出了问题?别急,今天就来给你详细剖析一下安卓系统硬件...
3310安卓4g系统,智能升级 你有没有听说过3310安卓4G系统?这可是最近科技圈里的小热门呢!想象一个经典的诺基亚3310,竟然...
小米用的安卓系统吗,引领智能生... 你有没有想过,那个你每天不离手的手机,它的操作系统到底是谁家的“孩子”?今天,咱们就来聊聊这个话题—...
安卓系统厉害的游戏,盘点那些令... 你有没有发现,安卓系统上的游戏真的是越来越厉害了?没错,我就要给你好好盘点一下那些让人欲罢不能的安卓...
安卓手机系统提有声音,唤醒你的... 你有没有发现,最近你的安卓手机系统突然变得特别贴心呢?没错,就是那个一直默默陪伴你的小家伙,现在竟然...
安卓9系统设置密码破解,轻松应... 你有没有遇到过这种情况:手机里装了安卓9系统,不小心设置了密码,结果现在想找回数据,却因为密码而头疼...