首页 > 数据库 >MySQL IFNULL函数

MySQL IFNULL函数

时间:2023-09-27 15:12:40浏览次数:41  
标签:函数 754 IFNULL contacts 541 MySQL NULL

MySQL IFNULL函数简介

MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数。 否则,IFNULL函数返回第二个参数。

两个参数可以是文字值或表达式。

以下说明了IFNULL函数的语法:

 1 IFNULL(expression_1,expression_2); 

如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。

IFNULL函数根据使用的上下文返回字符串或数字。

如果要返回基于TRUEFALSE条件的值,而不是NULL,则应使用IF函数

MySQL的IFNULL函数示例

请参见以下IFNULL函数示例:

示例-1

 1 SELECT IFNULL(1,0); -- returns 1 

示例-2

 1 SELECT IFNULL('',1); -- returns '' 

示例-3

 1 SELECT IFNULL(NULL,'IFNULL function'); -- returns IFNULL function 
 

上面示例中的语句是怎么运行的?

  • IFNULL(1,0)返回1,因为1不为NULL
  • IFNULL('',1)返回'',因为''字符串不为NULL
  • IFNULL(NULL,'IFNULL function')返回IFNULL函数字符串,因为第一个参数为NULL
    我们来看一下使用IFNULL函数的实例。

首先,使用以下语句创建一个名为contacts的新表:

1 USE testdb;
2 CREATE TABLE IF NOT EXISTS contacts (
3     contactid INT AUTO_INCREMENT PRIMARY KEY,
4     contactname VARCHAR(20) NOT NULL,
5     bizphone VARCHAR(15),
6     homephone VARCHAR(15)
7 );

 

每个联系人都有一个名字,业务电话和家庭电话。

其次,将数据插入到contacts表中:

1 INSERT INTO contacts(contactname,bizphone,homephone)
2 VALUES('John Doe','(541) 754-3009',NULL),
3       ('Cindy Minsu',NULL,'(541) 754-3110'),
4       ('Sue Greenspan','(541) 754-3010','(541) 754-3011'),
5       ('Lily Bush',NULL,'(541) 754-3111');
 

一些联系人只有家庭电话或商务电话。要从contacts表中获取所有联系人姓名和电话,请使用以下查询:

 1 SELECT 2  contactName, bizphone, homephone 3 FROM 4 contacts; 

执行上面查询语句,得到以下结果 -

1 +---------------+----------------+----------------+
2 | contactName   | bizphone       | homephone      |
3 +---------------+----------------+----------------+
4 | John Doe      | (541) 754-3009 | NULL           |
5 | Cindy Minsu   | NULL           | (541) 754-3110 |
6 | Sue Greenspan | (541) 754-3010 | (541) 754-3011 |
7 | Lily Bush     | NULL           | (541) 754-3111 |
8 +---------------+----------------+----------------+
9 4 rows in set
 

如果联系人的商务电话不可用,可以通过查询获得联系人的家庭电话也是一个获取联系方式的办法 -

 1 SELECT 2  contactname, IFNULL(bizphone, homephone) phone 3 FROM 4 contacts; 

这可以使用IFNULL()函数来解决。如果bizphoneNULL,则IFNULL函数将返回homephone的值。

第三,使用以下查询获取所有联系人的姓名和电话:

 1 mysql> SELECT 
 2     contactname, IFNULL(bizphone, homephone) phone
 3 FROM
 4     contacts;
 5 +---------------+----------------+
 6 | contactname   | phone          |
 7 +---------------+----------------+
 8 | John Doe      | (541) 754-3009 |
 9 | Cindy Minsu   | (541) 754-3110 |
10 | Sue Greenspan | (541) 754-3010 |
11 | Lily Bush     | (541) 754-3111 |
12 +---------------+----------------+
13 4 rows in set

请注意,应避免在WHERE子句中使用IFNULL函数,因为它会降低查询的性能。

如果要检查值是否为NULL,则可以在WHERE子句中使用IS NULLIS NOT NULL

在本教程中,我们向您介绍了MySQL IFNULL函数,并向您展示了如何在查询中使用IFNULL函数。



标签:函数,754,IFNULL,contacts,541,MySQL,NULL
From: https://www.cnblogs.com/congmo/p/17732757.html

相关文章

  • 【从0学习Solidity】 4. 函数输出
    【从0学习Solidity】4.函数输出博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代......
  • 【从0学习Solidity】 3. 函数详解
    【从0学习Solidity】3.函数详解博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代......
  • Kubernetes创建MysQL
    原文:https://www.cnblogs.com/wenkuna/p/16985512.html创建数据存储PV、PVC这里我们使用nfs作为storageclass,具体yaml文件如下:yaml#创建PVapiVersion:v1kind:PersistentVolumemetadata:name:mysqlspec:storageClassName:manualcapacity:storage:20Gi......
  • Dockerfile如何制作mysql镜像
    原文:https://blog.csdn.net/dwd22/article/details/130705146Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可抑制的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。1.编写dockerfile_mysql5.7在文件夹/root/dockerfile/mysql创建文件......
  • MySQL的SQL语句优化
    一、拿到SQL之后,用执行计划查看参数。explainselect1from`d_ec_hyx`.`t_advertiser_info`where1=1andf_corp_id=15930142andf_typein(1,4)andf_refund_status=1limit1 二、执行计划ID。1、id相同,执行顺序从上往下;2、id不同,如果是子查......
  • 27、Flink 的SQL之SELECT (窗口函数)介绍及详细示例(3)
    文章目录Flink系列文章一、Windowingtable-valuedfunctions(WindowingTVFs)1、TUMBLE滚动窗口1)、示例1-使用滚动窗口查询、统计(表不含主键)2)、示例2-使用滚动窗口查询、统计(表含主键)3)、官方示例-使用滚动窗口查询、统计(未验证)2、HOP滑动窗口1)、示例1-使用滑动窗口查询、统计2)......
  • Mysql查询不区分大小写
    当使用mysql查询时,发现不区分大小写。经查,是以下问题utf8_general_ci --不区分大小写utf8_bin--区分大小写  解决方法一:修改排序规则为utf8_bin 解决方法二:在查询的字段前面加个binary ......
  • 数据库的三范式是什么?MySQL数据库引擎有哪些?InnoDB与MyISAM的区别
    一、数据库的三范式第一范式:列不可再分第二范式:主键约束,行可以唯一区分第三范式:外键约束,表的非主属性不能依赖于其它表的非主属性第二范式建立在第一范式上,第三范式建立在第一第二范式上。二、MySQL数据库引擎有哪些可以用如下命令查看mysql提供的所有引擎:mysql>showengines;MySq......
  • mysql 获取当前日期周几
    --方法一:使用WEEKDAY函数SELECTWEEKDAY(CURDATE());--返回0到6,分别代表星期日到星期六--方法二:使用DAYOFWEEK函数SELECTDAYOFWEEK(CURDATE());--返回1到7,分别代表星期日到星期六--方法三:使用DATE_FORMAT函数SELECTDATE_FORMAT(CURDATE(),'%w');......
  • 【Mysql主从复制】1主多从
    这里使用docker进行演示两台mysql主从搭建1:使用Docker启动俩个Mysql容器,配置挂载数据与配置文件传送门:https://www.cnblogs.com/wanghong1994/p/17731143.html创建完后应该就有俩个Mysql(或者你有两个服务器,启动了mysql并且配置完成):[root@VM-12-9-centos/]#dockerp......