我们知道,在不同的数据库引擎中,内置函数的实现、命名都是存在差异的,如果经常切换使用这几个数据库引擎的话,很容易会将这些函数弄混淆。

比如说判断空值的函数,在Oracle中是NVL()函数、NVL2()函数,在SQL Server中是ISNULL()函数,这些函数都包含了当值为空值的时候将返回值替换成另一个值的第二参数。

但是在MySQL中,ISNULL()函数仅仅是用于判断空值的,接受一个参数并返回一个布尔值,不提供当值为空值的时候将返回值替换成另一个值的第二参数。

SELECT ISNULL('i like yanggb'); // 0
SELECT ISNULL(NULL); // 1

因此MySQL另外提供了一个IFNULL()函数。

简单介绍

IFNULL()函数是MySQL内置的控制流函数之一,它接受两个参数,第一个参数是要判断空值的字段或值(傻?),第二个字段是当第一个参数是空值的情况下要替换返回的另一个值。如果第一个参数不是NULL,则返回第一个参数;否则,将返回第二个参数。两个参数都可以是文字值或表达式。

函数的语法

IFNULL(v1, v2)

其中,如果v1不为NULL,则IFNULL函数返回v1; 否则返回v2的结果。

简单示例

SELECT IFNULL(NULL, 'i like yanggb'); // i like yanggb

在上面的例子中,由于第一个参数为NULL,所以返回的是第二个参数的值。

SELECT IFNULL('i like yanggb', 'i do like yanggb'); // i like yanggb

在上面的例子中,由于第一个参数不为NULL,所以返回的是第一个参数的值。

"你好像瘦了,头发也变长了,背影陌生到让我觉得,见你是上个世纪的事,然后你开口叫我名字,我就想笑,好像自己刚刚放学,只在校门口等了你五分钟而已。"

mysql中的ifnull()函数判断空值的更多相关文章

  1. 关于MySql中使用IFNULL()函数失效的问题。

    今天在学习时,碰到一个问题:在联表查询取得结果后,如果取得的结果是空值,则给一个默认值,如果不是空值,则返回这个值. 下面我们来看看业务场景: 在menu表中: 存储的是前端页面的菜单配置,注意成员权 ...

  2. MySQL中的IFNULL,IF,NULLIF函数

    MySQL中的IFNULL函数和IF函数 MySQL中的IFNULL函数类似于Oracle中的NVL函数,其表达式为:IFNULL(expr1,expr2),含义是:如果第一个参数不为空,则返回第一个 ...

  3. Mysql中常用的函数汇总

    Mysql中常用的函数汇总: 一.数学函数abs(x) 返回x的绝对值bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制)ceiling(x) 返回大于x的最小整数值exp(x) 返回 ...

  4. mysql中isnull,ifnull,nullif的用法

    今天用到了MySql里的isnull才发现他和MSSQL里的还是有点区别,现在简单总结一下: mysql中isnull,ifnull,nullif的用法如下: 1. isnull(expr) 的用法: ...

  5. Mysql中的常用函数:

    Mysql中的常用函数: 1.字符串函数: (1).合并字符串 concat():// concat('M','y',"SQL",'5.5');== MySQL5.5//当传入的参 ...

  6. Mysql中使用find_in_set函数查找字符串

    mysql有个表的字段的存储是以逗号分隔的,如domain字段login.s01.yy.com,s01.yy.com,s02.yy.com.现在要查找s01.yy.com这个.我们用like查找好像不 ...

  7. mysql中的group_concat函数的用法

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . MySQL中group_concat函数 完整的语法如下: grou ...

  8. SQLServer 中实现类似MySQL中的group_concat函数的功能

    SQLServer中没有MySQL中的group_concat函数,可以把分组的数据连接在一起. 后在网上查找,找到了可以实现此功能的方法,特此记录下. SELECT a, stuff((SELECT ...

  9. mysql中的substr()函数

    mysql中的substr()函数和hibernate的substr()参数都一样,就是含义有所不同. 用法: substr(string string,num start,num length); ...

随机推荐

  1. springboot 2.0+整合RabbitMQ

    基于spring-boot 2.* 作用: 1.异步处理 2.应用解耦 3.流量削峰   相关概念介绍: Broker:它提供一种传输服务,它的角色就是维护一条从生产者到消费者的路线,保证数据能按照指 ...

  2. excel提取一类具有相似结构的部分数据,2种方式;数据——分列——分割符号/固定宽度;

    1.数据如同下图,这里我们需要提取 ¥...¥,也就是2¥及其中的内容: 鼠标选种某条数据,然后按Ctrl+A,则选种需要的所有数据:点击数据——分列:  2.根据分割符号分列:  3.选择合适的分隔 ...

  3. Asia Yokohama Regional Contest 2018 G题 What Goes Up Must Come Down

    链接 G题 https://codeforces.com/gym/102082 使其成为单峰序列需要交换多少次相邻的数. 树状数组维护逆序对. 对于每个序列中的数,要么在单峰的左侧,要么在单峰的右侧, ...

  4. Java,该学什么?

    本人大学学的是生物技术专业,毕业后入坑Java. 最近有人问我是如何转行的,需要学一些什么.我在网上看到一篇帖子,觉得写得很全.如果是我来写,可能还写不了这么全的.在此分享给网友. 2019秋招几个月 ...

  5. Springboot整合Mybatis实现级联一对多CRUD操作

    在关系型数据库中,随处可见表之间的连接,对级联的表进行增删改查也是程序员必备的基础技能.关于Spring Boot整合Mybatis在之前已经详细写过,不熟悉的可以回顾Spring Boot整合Myb ...

  6. 使用python - selenium模拟登陆b站

    思路 输入用户名密码点击登陆 获取验证码的原始图片与有缺口的图片 找出两张图片的缺口起始处 拖动碎片 功能代码段 # 使用到的库 from selenium import webdriver from ...

  7. Linux配置svn服务器版本库

    1)创建版本库首先使用yum安装subversion 2)创建版本库 svnadmin create /home/svn/svnfile 3)进入conf目录 authz               ...

  8. 移动端触发touchend后阻止click事件

    // vue里面简单的处理方式,可以同时兼容PC和移动端 <div @touchend.stop.prevent="doSomething" @click.stop.prev ...

  9. C/C++ 中 `printf` 格式化

    作为强类型静态语言,类型不仅规定了可以对数据进行的操作,还决定了应该怎样在 printf 中输出. printf 的签名是: int printf ( const char * format, ... ...

  10. Selenium(八):其他操作元素的方法、冻结界面、弹出对话框、开发技巧

    1. 其他操作元素的方法 之前我们对web元素做的操作主要是:选择元素,然后点击元素或者输入字符串. 还有没有其他的操作了呢?有. 比如:比如鼠标右键点击.双击.移动鼠标到某个元素.鼠标拖拽等. 这些 ...