目录概念在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 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤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.