IFNULL函数

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

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

IFNULL函数的语法:

IFNULL(expression_1,expression_2);

说明:

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

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

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

IFNULL函数示例

示例-1

select ifnull(5,'1') #return 5

示例-2

SELECT IFNULL('',1); # return ''

示例-3

select ifnull(null,'1'); # return 1

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

IFNULL(5,2)返回5,因为5不为NULL。
IFNULL(’’,1)返回’’,因为’'字符串不为NULL。
IFNULL(NULL,‘1’)返回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()函数来解决。如果bizphone为NULL,则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 NULL或IS NOT NULL。

MySQL IFNULL函数相关推荐

  1. MySQL ifnull()函数

    转载自  MySQL ifnull()函数 MySQL IFNULL函数简介 MySQL IFNULL函数是MySQL控制流函数之一,它接受两个参数,如果不是NULL,则返回第一个参数. 否则,IFN ...

  2. MYSQL IFNULL函数的使用

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

  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. 深度优先搜索_0基础学算法 搜索篇第一讲 深度优先搜索
  2. 解决umount.nfs: /data: device is busy 问题
  3. LeetCode Pascal's Triangle
  4. Android应用程序的五大基本组件
  5. 操作系统 实验3【动态分区存储管理】
  6. Java Spring初学者之调试器里括号包含的类含义
  7. 如何展示富文本_自助建站如何做出个性化效果?
  8. 嵌入式开发之davinci--- MSB和LSB
  9. ObjC学习8-重头戏来了!Foundation框架
  10. 心斋-------马克奥勒流
  11. 一个用于分布式DNN训练加速的通用通信调度器
  12. HashMap基本原理
  13. 2022考研数学学习资源分享203G视频之tang家凤数学全程班网盘分享
  14. C#基础与VB基础比较
  15. Opencv之人脸识别
  16. 操作系统原理第五章(资源分配与调度)
  17. lotus-miner 元数据备份
  18. asm cli/sti 指令
  19. 从零开始学数据分析之——《线性代数》第三章 n维向量
  20. 通货膨胀理解之计算1年后100w贬值多少

热门文章

  1. VC++中多线程学习(MFC多线程)二(线程的相关操作、线程间的通信)
  2. 前端网页发布到nginx_通过nginx部署前端代码实现前后端分离
  3. Java 多态的特性和概念
  4. 归档日志存在arch_还在用ELK? 是时候了解一下轻量化日志服务Loki了
  5. 语言怎么得到直流电压并采样_250V10A高频直流电源/大电流直流稳压稳流电源
  6. zookeeper安装_Centos7安装配置Zookeeper
  7. 斯坦福-随机图模型-week1.4_
  8. R Markdown 使用方法笔记
  9. POJ 3071 概率DP
  10. python 编码报错问题 'ascii' codec can't encode characters 解决方法