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

比如说判断空值的函数,在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. tf.InteractiveSession()与tf.Session()的区别

    Tensorflow依赖于一个高效的C++后端来进行计算.与后端的这个连接叫做session.一般而言,使用TensorFlow程序的流程是先创建一个图,然后在session中启动它. 这里,我们使用 ...

  2. C++ std::vector emplace_back 优于 push_back 的理由

    #include <iostream> #include <vector> #include <chrono> #include <windows.h> ...

  3. Linux gzip: stdin: not in gzip format

    在解压tar.gz文件的时候报错 tar -zxvf otp_src_18.3.tar.gz gzip: stdin: not in gzip format tar: Child returned s ...

  4. 基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术-Angel工作室通用权限管理

    一.Angel工作室简单通用权限系统简介 AngelRM(Asp.net MVC Web api)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash+jquery技术 ...

  5. 发布方式一:发布.netcore流程

    通过注册世纪互联,发布网站 注册需要上传身份证正反照片,以及打款一元,试用期一个月 https://www.azure.cn     注册完成后,进入主页面: 如图所示,创建完成后的效果: 点开详情, ...

  6. ef实现一次查询多个聚合函数的字段

    想用ef来写一个统计字段的语句,如下所示 select sum(price) as price_total, sum(amount) as amount_total from table1 发现似乎实 ...

  7. HTML中的三元表达式,灵活的使用or逻辑判断

    08.27自我总结 HTML中的三元表达式 判断内容 ? 满足返回的值 : 不满足返回的值 灵活使用or逻辑判断 比如我们某个变量为空的时候返回他另外个值 var a = msg || '没有消息'

  8. Python Web(四)

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.Django-forms作用 前端和后端都要校验 前端校验的目的:减少后端的压力 用forms可以同时完成前端 ...

  9. wireshark和tcpdump抓包TCP乱序和重传怎么办?PCAP TCP排序工具分享

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 介绍TCP排序方法,分享一个Windows版的TCP排序工具." 在分析协议的过程中,不可避免地需要抓包. 无论抓包条件如何优越, ...

  10. Android 列表对话框 使用数组

    添加一个数组 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSt ...