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

IFNULL(expr1,expr2) 
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。 
mysql> select IFNULL(1,0);
        -> 1
mysql> select IFNULL(0,10);
        -> 0
mysql> select IFNULL(1/0,10);
        -> 10
mysql> select IFNULL(1/0,'yes');
        -> 'yes'
 
IF(expr1,expr2,expr3) 
如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。IF()返回一个数字或字符串值,取决于它被使用的上下文。 
mysql> select IF(1>2,2,3);
        -> 3
mysql> select IF(1<2,'yes','no');
        -> 'yes'
mysql> select IF(strcmp('test','test1'),'yes','no');
        -> 'no'

expr1作为整数值被计算,它意味着如果你正在测试浮点或字符串值,你应该使用一个比较操作来做。

mysql> select IF(0.1,1,0);
        -> 0
mysql> select IF(0.1<>0,1,0);
        -> 1

在上面的第一种情况中,IF(0.1)返回0,因为0.1被变换到整数值, 导致测试IF(0)。这可能不是你期望的。在第二种情况中,比较测试原来的浮点值看它是否是非零,比较的结果被用作一个整数。

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END 
 
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END 
第一个版本返回result,其中value=compare-value。第二个版本中如果第一个条件为真,返回result。如果没有匹配的result值,那么结果在ELSE后的result被返回。如果没有ELSE部分,那么NULL被返回。 
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
       -> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
       -> "true"
mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
-> NULL

转载于:https://blog.51cto.com/magina/1191231

MySQL IFNull 详解相关推荐

  1. MySQL数据库,从入门到精通:第十四篇——MySQL视图详解

    MySQL数据库,从入门到精通:第十四篇--MySQL视图详解 第 14 篇_视图 1. 常见的数据库对象 2. 视图概述 2. 1 为什么使用视图? 2. 2 视图的理解 3. 创建视图 3. 1 ...

  2. 十六、MySQL 视图详解

    文章目录 一.常见的数据库对象 二.视图概述 2.1 为什么要使用视图? 2.2 视图的理解 2.3 视图的作用 三.视图常用操作 3.1 查看创建视图的权限 3.2 创建视图 3.3 查看视图 3. ...

  3. pandas读写MySQL数据库详解及实战

    pandas读写MySQL数据库详解及实战 SQLAlchemy是Python中最有名的ORM工具. 关于ORM: 全称Object Relational Mapping(对象关系映射). 特点是操纵 ...

  4. Mysql Explain 详解

    Mysql Explain 详解 一.语法 explain < table_name > 例如: explain select * from t3 where id=3952602; 二. ...

  5. MySQL存储过程详解 mysql 存储过程

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  6. mysql存储过程详解[转]

    mysql存储过程详解[转] 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功 ...

  7. mysql-win安装教程,WINDOWS下安装MYSQL教程详解

    1.下载安装包 2.配置环境变量 2.1 解压所下载的压缩包 2.2 环境变量 win 10 电脑 这么进去 3.生成data文件 在你解压的目录下,eg:F:\Program Files\mysql ...

  8. MySQL Explain详解,分析语句为何运行慢

    MySQL Explain详解 在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的SQL语句,找出这些SQL语句并不意味着完事了,些时我们常常用到explain这个命令来查看一个这些SQL语 ...

  9. 史上最简单MySQL教程详解(进阶篇)之存储过程(一)

    史上最简单MySQL教程详解(进阶篇)之存储过程(一) 史上最简单MySQL教程详解(进阶篇)之存储过程(一) 什么是存储过程 存储过程的作用 如何使用存储过程 创建存储过程 DELIMITER改变分 ...

最新文章

  1. 机器视觉关键技术之图像增强技术
  2. 卷积神经网络如何处理一维时间序列数据?
  3. finally块中的代码一定会执行吗?
  4. 搭建OpenStack-M版的Cinder所碰到过的状况
  5. linux学习之shell基础篇
  6. 《JavaScript高效图形编程(修订版)》——6.10 用画布sprites取代DHTMLsprite
  7. 基于SpringMVC、Maven以及Mybatis的环境搭建 【转】
  8. close关闭指定窗口 matlab_Δ-Σ ADC设计笔记一:MATLAB环境设置
  9. java 上传文件编码_(java)有什么办法把MultipartFile上传的文件转为utf-8的编码吗
  10. 直击标贝科技WAIC2019:深耕语音合成与数据服务 助力语音场景完美落地
  11. zookeeper安装_Centos7安装配置Zookeeper
  12. APP图标右上角数字的实现
  13. 软件设计 基础篇(一) 开发文档
  14. Android 应用中使用ContentObserver自动填写短信验证码
  15. 从苏宁电器到卡巴斯基第29篇:难忘的三年硕士时光 V
  16. 阿里人绝不服输,用 7 部分讲明白百亿级高并发系统(全彩版小册开源
  17. android calendar 24小时制,Android 使用SimpleDateFormat以及Calendar转换时间为12小时制和24小时制时间格式...
  18. 信息系统项目管理师(2022年)—— 重点内容:10大管理、5大过程组、47个过程信息汇总
  19. 删除github上的一个仓库或者仓库里面的某个文件
  20. java lock park_java并发编程-LockSupport中park与unpark基本使用与原理简单分析

热门文章

  1. Agilent RF fundamentals (4)- Impedance match and distortions
  2. 使用CMD命令修改Windows本地账户密码
  3. 文件系统管理相关命令
  4. 在VS中设置比较和谐的字体和颜色的方法
  5. POJ 3181 Dollar Dayz DP
  6. Android简明开发教程二十一:访问Internet 绘制在线地图
  7. 如何在PowerPoint中插入带语法高亮的程序代码
  8. php 解析xml 的四种方法(转)
  9. 白白的(baibaide)
  10. Linux基础命令---findfs