转载自  MySQL ifnull()函数

MySQL IFNULL函数简介

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

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

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

IFNULL(expression_1,expression_2);

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

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

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

MySQL的IFNULL函数示例

请参见以下IFNULL函数示例:

示例-1

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

示例-2

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

示例-3

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的新表:

USE testdb;
CREATE TABLE IF NOT EXISTS contacts (contactid INT AUTO_INCREMENT PRIMARY KEY,contactname VARCHAR(20) NOT NULL,bizphone VARCHAR(15),homephone VARCHAR(15)
);

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

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

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

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

SELECT contactName, bizphone, homephone
FROMcontacts;

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

+---------------+----------------+----------------+
| contactName   | bizphone       | homephone      |
+---------------+----------------+----------------+
| John Doe      | (541) 754-3009 | NULL           |
| Cindy Minsu   | NULL           | (541) 754-3110 |
| Sue Greenspan | (541) 754-3010 | (541) 754-3011 |
| Lily Bush     | NULL           | (541) 754-3111 |
+---------------+----------------+----------------+
4 rows in set

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

SELECT contactname, IFNULL(bizphone, homephone) phone
FROMcontacts;

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

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

mysql> SELECT contactname, IFNULL(bizphone, homephone) phone
FROMcontacts;
+---------------+----------------+
| contactname   | phone          |
+---------------+----------------+
| John Doe      | (541) 754-3009 |
| Cindy Minsu   | (541) 754-3110 |
| Sue Greenspan | (541) 754-3010 |
| Lily Bush     | (541) 754-3111 |
+---------------+----------------+
4 rows in set

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

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

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

MySQL ifnull()函数相关推荐

  1. MYSQL IFNULL函数的使用

    IFNULL函数是MYSQL数据库中最重要的函数之一,下面就对该函数的使用方面进行分析,希望对您能够有所帮助. 下文对MYSQL IFNULL函数的使用进行了详细的叙述,供您参考学习,如果您在MYSQ ...

  2. MySQL IFNULL函数

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

  3. MYSQL ifnull 函数 、if判断 、case when、 locate函数

    1.MYSQL  ifnull 函数 .if判断 .case when. locate (1).IFNULL(expr1,expr2) 如果expr1为空(即NULL),返回expr2,如果expr1 ...

  4. mysql ifnull 深入_带您深入了解MySQL ifnull()函数

    MySQL ifnull()函数和nvl()函数类似,但是也有所不同,下面就为您详细介绍MySQL ifnull()函数 ,希望可以让您对MySQL ifnull()函数有更深的认识. IFNULL( ...

  5. MySQL IFNULL() 函数

    MySQL函数 IFNULL() 函数用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值. IFNULL() 函数语法格式为: IF ...

  6. MySQL IFNULL()函数用法MySQL

    用法说明 1 IFNULL(expr1,expr2) 如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2. IFNULL()返回一个数字或字符串值,取决于它被 ...

  7. php mysql ifnull函数_MYSQL中的IFNULL函数

    手册上: IFNULL(expr1,expr2) 假如expr1不为NULL,则IFNULL()的返回值为 expr1;否则其返回值为 expr2.IFNULL()的返回值是数字或是字符串,具体情况取 ...

  8. mysql ifnull 性能_MYSQL IFNULL函数的使用

    下文对MYSQL IFNULL函数的使用进行了详细的叙述,供您参考学习,如果您在MYSQL IFNULL函数使用方面遇到过类似的问题,不妨一看. MYSQL IFNULL(expr1,expr2) 如 ...

  9. MySQL IFNull 详解

    MySQL ifnull()函数和nvl()函数类似,但是也有所不同,下面就为您详细介绍MySQLifnull()函数 ,希望可以让您对MySQL ifnull()函数有更深的认识. IFNULL(e ...

最新文章

  1. 效率达CPU一万倍的神经形态芯片发布后,英特尔引发了多方吐槽
  2. docker构建镜像 发布镜像
  3. Oracle 20c 新特性:自动的区域图 - Automatic Zone Maps
  4. 【BZOJ1854】【codevs3358】游戏,二分图最大匹配
  5. 京东数科公布11.11一小时战报:白条交易额10秒破亿
  6. Flask 框架中 上下文基础理念,包括cookie,session存储方法,requset属性,current_app模块和g模块...
  7. Tcl Tutorial 笔记1 · 输出
  8. spring boot: 一般注入说明(五) @Component, application event事件为Bean与Bean之间通信提供了支持...
  9. 札记:android手势识别,MotionEvent
  10. Oracle修改字段长度
  11. 德标螺纹规格对照表_常用螺栓的标准和规格表
  12. Linux安装pyaudio
  13. rstudio导入txt文件_R语言 | 读写txt、csv、excel文件
  14. 工业机器人导轨 百度文库_《工业机器人》复习资料
  15. HTML中<meta>标签的name属性都有哪些——标准元数据名称
  16. 【ZCMU1919】kirito's 星爆气流斩(多重背包)
  17. Domino多瑙河EAP3以及Nomad Web 1.0.5
  18. 大数据分析师高级证书_数据分析师资格证书好考吗_大数据分析师认证
  19. Java web工程目录结构中src、Libraries、build、WebContent、META-INF、WEB-INF的作用简述
  20. 前端面试题《CSS》

热门文章

  1. 4位无符号比较器设计
  2. 蓝桥杯2015决赛-方格填数-枚举 or dfs
  3. Divide and Sum CodeForces - 1445D(排列组合+逆元)
  4. oppo手机html文件,OPPO手机怎么传输数据包括文档和图片,有哪些传输方式
  5. mysql 5.74安装教程_MySQL安装、基本账户安全(5.0以后版本)
  6. B-树、B+树、B*树详解
  7. P2839 [国家集训队]middle(二分 套 主席树)
  8. #6073. 「2017 山东一轮集训 Day5」距离(树链剖分 + 永久标记主席树)
  9. Codeforces Round #163 (Div. 2) C. Below the Diagonal 分治
  10. 常系数齐次线性递推学习笔记