Mysql中的 IFNULL 函数的详解

这篇具有很好参考价值的文章主要介绍了Mysql中的 IFNULL 函数的详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、概念

二、语法

三、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');

运行结果

mysql ifnull,MySQL,mysql,java,数据库

3.1举例一

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

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

 运行结果
mysql ifnull,MySQL,mysql,java,数据库

3.2.1举例二

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

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

 运行结果
mysql ifnull,MySQL,mysql,java,数据库

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

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

 运行结果
mysql ifnull,MySQL,mysql,java,数据库

3.2.2 业务场景下使用举例

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

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

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

使用场景:当经销商上级有总代理时 使用总代理的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

查询结果示例如下

mysql ifnull,MySQL,mysql,java,数据库

 

3.3举例三

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

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

 运行结果
mysql ifnull,MySQL,mysql,java,数据库

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));

 运行结果
mysql ifnull,MySQL,mysql,java,数据库

从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));

 运行结果
mysql ifnull,MySQL,mysql,java,数据库

注意事项

1.查询语句要用括号括起来
2.一个IFNULL只能对应一条判断语句,
3.IFNULL仅能查询一个字段,否则会报错
文章来源地址https://www.toymoban.com/news/detail-602730.html

到了这里,关于Mysql中的 IFNULL 函数的详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ifnull 和 isnull 的用法 以及其平替方法

    ifnull 和 isnull 都是 MySQL 的函数,用于对 NULL 值进行处理。在 SQL 查询中,遇到 NULL 值会导致计算错误或者返回空值,因此需要使用 ifnull 和 isnull 对 NULL 值进行检测和替换。ifnull 函数可以用于替换空值,isnull 函数则用于判断给定的表达式是否为 NULL 值。ifnull 和 isnull 的语法如

    2024年01月16日
    浏览(40)
  • [MySQL] MySQL中的内置函数

      本篇文章主要是对MySQL中常见的内置函数进行了详细解释。例如有日期类函数、字符串类函数、数学类函数等等。希望本篇文章会对你有所帮助。  文章目录 一、日期类函数 1、1 使用详解 1、2 实例演示 二、字符串函数 2、1 使用详解 2、2 实例演示 三、数学函数 四、其他函

    2024年02月04日
    浏览(35)
  • MySQL中的substr()函数

    截取函数substr()方法以及参数详解 1、substr(str, position)   从position截取到字符串末尾 str可以是字符串、函数、SQL查询语句 position代表起始位置,索引位置从1开始 ​ 2、substr(str from position)  从position截取到字符串末尾 和1的操作类似,和上面1的操作对比可以发现只是把括号中

    2024年04月23日
    浏览(18)
  • mysql中的窗口函数

    MySQL中的窗口函数(Window Functions)是一种用于在查询结果集内执行计算的功能。窗口函数可以在查询中进行分析和聚合操作,而无需将查询结果分组。它们可以用于计算排名、行号、累积值等各种分析操作。窗口函数通常与OVER子句一起使用,用于指定窗口的范围。 常见的窗

    2024年02月12日
    浏览(77)
  • MySQL中的DATEDIFF()函数

    1.基本信息 在MySQL中, DATEDIFF 是一个日期函数,用于计算两个日期之间的差距,并以指定的时间单位返回结果。其函数形式如下列代码块所示: 注意:在MySQL中,DATEDIFF有且仅有两个参数,那就是结束时间和开始时间,不存在第一个参数为day,year这种的,那不是MySQL中的DATE

    2024年02月06日
    浏览(31)
  • MySQL中的cast()函数用法

    CAST()函数,把一个字段转成另一个字段,主要转化的是字段的类型 其语法为:cast(字段名 as 转换的类型 )                 转换的类型共有: CHAR            字符型                                               DATE            日期型                            

    2024年02月11日
    浏览(28)
  • 【SQL】MySQL中的窗口函数(开窗函数)

    窗口函数是 MYSQL8.0 新增的 聚合函数: 多行变一行,常见的sum,count,max,min 窗口函数: 行数不变,常见的row_number,rank 语法格式: 窗口函数(表达式) over (partition by … order by … frame_clause) partition by是分区,类似于group by,如去掉相当于对所有数据进行计算 order by排序 frame_c

    2024年02月07日
    浏览(36)
  • Mysql 中的日期时间函数汇总

    日期和时间函数 MySQL中内置了大量的日期和时间函数,能够灵活、方便地处理日期和时间数据,本节就简单介绍一下MySQL中内置的日期和时间函数。 1 CURDATE()函数 CURDATE()函数用于返回当前日期,只包含年、月、日部分,格式为YYYY-MM-DD。使用示例如下: CURRENT_DATE()函数的作用与

    2024年02月02日
    浏览(39)
  • MySQL:聚合函数(全面详解)

    欢迎 免费报名 由CSDN主办的【Java基础及数据库Mysql的新星计划】(点击跳转) 我们特别为 Java基础 和 MySQL 这两个赛道开设了培训课程。 通过参与这个赛道,你将有机会与其他志同道合的学习者进行交流和互动,我们提供一系列精心设计的课程内容,旨在帮助你建立扎实的Java基

    2024年02月11日
    浏览(31)
  • MySQL:单行函数(全面详解)

    本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主! 也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远! 函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包