京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Mysql中 IFNULL函数的使用详解

2024-11-2 22:40| 发布者: 4d5a8576d| 查看: 42| 评论: 0

摘要: 目录概念语法Demo 举例说明创建表加入数据举例一举例二举例三举例四概念 在mysql中IFNULL() 函数用于判定第一个表达式是否为 NULL,如果第一个值不为NULL就执行第一个值。第一个值为 NULL 则返回第二个参数的值。 语
目录

概念

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

语法

[code]IFNULL(a, b) [/code]

Demo 举例说明

创建表

[code]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; [/code]

加入数据

[code]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'); [/code]

运行效果

在这里插入图片形貌

举例一

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

[code]SELECT IFNULL('hello', 'world'); [/code]

运行效果

在这里插入图片形貌

举例二

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

[code]SELECT IFNULL(sno,sname) AS '字段效果' FROM student_one [/code]

运行效果

在这里插入图片形貌

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

[code]SELECT IFNULL(sno,sname) FROM student_one WHERE class=4 [/code]

运行效果

在这里插入图片形貌

业务场景下使用举例

或者 多表 字段 界说为某个字段 场景如:

ifnull( dga.code ,dr.code) agentCode, 含义说明:总代code,经销商code 作为 别名agentCode的值。

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

[code] select ds.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 code FROM dg_store ds LEFT JOIN dg_store_type dst ON dst.id = ds.type LEFT JOIN dg_reseller dr ON dr.code = ds.reseller_code LEFT JOIN dg_general_agent dga ON dga.id = dr.agent_id [/code]

查询效果示比方下

在这里插入图片形貌

举例三

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

[code]SELECT IFNULL((SELECT class FROM student_one WHERE sno = 10),0); [/code]

运行效果

在这里插入图片形貌

举例四

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

[code]SELECT IFNULL((SELECT sname from student_one WHERE sno=1),(SELECT ssex from student_one WHERE sno=2)); [/code]

运行效果

在这里插入图片形貌

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

[code]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)); [/code]

运行效果

在这里插入图片形貌

到此这篇关于Mysql中 IFNULL函数的使用详解的文章就介绍到这了,更多相干Mysql IFNULL函数内容请搜索脚本之家以前的文章或继承浏览下面的相干文章希望各人以后多多支持脚本之家! 


来源:https://www.jb51.net/database/327221ek0.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-1 20:09 , Processed in 0.042343 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部