MySQL中的isnull、ifnull和nullif函数用法
isnull(expr)
如expr为null,那么isnull()的返回值为1,否则返回值为0。
mysql>select isnull(1+1);
->0
mysql>select isnull(1/0);
->1
使用=的null值对比通常是错误的。
isnull()函数同is null比较操作符具有一些相同的特性。请参见有关is null 的说明。
ifnull(expr1,expr2)
假如expr1不为NULL,则IFNULL()的返回值为expr1; 否则其返回值为expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。
mysql>SELECT IFNULL(1,0);
->1
mysql>SELECT IFNULL(NULL,10);
->10
mysql>SELECT IFNULL(1/0,10);
->10
mysql>SELECT IFNULL(1/0,'yes');
->'yes'
ifnull(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、REAL或INTEGER。假设一个基于表达式的表的情况,或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:
CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
在这个例子中,测试列的类型为 CHAR(4)。
nullif(expr1,expr2)
如果expr1=expr2成立,那么返回值为NULL,否则返回值为expr1。这和
CASE WHEN expr1=expr2 THEN NULL
ELSE
expr1
END相同。
mysql>SELECT NULLIF(1,1);
->NULL
mysql>SELECT NULLIF(1,2);
->1
如果参数不相等,则MySQL两次求得的值为expr1 。
一、IF函数 
表达式:IF(expr1,expr2,expr3) 
满足条件expr1即条件expr1返回true 
则expr2否则就是expr3 返回false 
作为排序条件使用时 放在order by 后 
eg: 
1. SELECT IF(1=1,2,3); 则输出2 
2.SELECT IF(1=2,2,3);则输出3 
select * from test_table order by if(ISNULL(idcard),1,0) 
二、IFNULL函数 
表达式:IFNULL(expr1,expr2) 
如果expr1值为NULL,则输出expr2 
如果expr1值不为空则输出expr1本身
eg: 
1.SELECT IFNULL(null,”2”);则输出2 
2.SELECT IFNULL(3,”2”);则输出3
三、is not null函数 
select * from test where name is not null; 
四、isnull(expr) 的用法: 
如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
MySQL中的isnull、ifnull和nullif函数用法的更多相关文章
- 博文推荐】Javascript中bind、call、apply函数用法
		
[博文推荐]Javascript中bind.call.apply函数用法 2015-03-02 09:22 菜鸟浮出水 51CTO博客 字号:T | T 最近一直在用 js 写游戏服务器,我也接触 j ...
 - mysql中length与char_length字符长度函数使用方法
		
在mysql中length是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符了,与char_length是有一点区别,本文章重点介绍第一个函数. mysql里面的length函数是一个用来 ...
 - MySQL中concat()、concat_ws()、group_concat()函数的使用技巧与心得总结
		
Author:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 B站视频 : Bilibili.c ...
 - Mysql中concat()、concat_ws()和 group_concat()的用法
		
一.CONCAT()函数CONCAT()函数用于将多个字符串连接成一个字符串.使用数据表Info作为示例,其中SELECT id,name FROM info LIMIT 1;的返回结果为+----+ ...
 - 彻底弄清c标准库中string.h里的常用函数用法
		
在我们平常写的c/c++程序,一些算法题中,我们常常会用到c标准库中string.h文件中的函数,这些函数主要用于处理内存,字符串相关操作,是很有用的工具函数.而且有些时候,在笔试或面试中也会出现让你 ...
 - MySQL 中的共享锁和排他锁的用法
		
在 MySQL 中的行级锁.表级锁和页级锁中,咱们介绍过,行级锁是 MySQL 中锁定粒度最细的一种锁,行级锁能大大减少数据库操作的冲突.行级锁分为共享锁和排他锁两种,本文将详细介绍共享锁和排他锁的概 ...
 - MySQL if,ifnull,nullif 函数
		
一.IF IF(exPR1,expr2,expr3) 如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr ...
 - MySQL-ISNULL()、IFNULL()和NULLIF()函数
		
以下三个函数都可以用于where子条件,作为数据删除.更新的记录定位依据. 如: SELECT * FROM usergrade WHERE ISNULL(USERNAME); 一.ISNULL(ex ...
 - mysql中比较实用的几个函数
		
1.曾有这样的需求: 可以使用如下函数: 语法:FIND_IN_SET(str,strlist). 定义: 1. 假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在1到N之间 ...
 
随机推荐
- HDFS格式化namenode后启动集群datanode不启动
			
这是因为格式化namenode之后,namenode节点中VERSION的ClusterID会改变!!! 解决办法: 1.打开namenode节点的hdfs-site.xml文件,查看你的nameno ...
 - 【LeetCode算法-9】Palindrome Number
			
LeetCode第9题 Determine whether an integer is a palindrome. An integer is a palindrome when it reads t ...
 - Python之路【第八篇】:面向对象的程序设计
			
阅读目录 一 面向对象的程序设计的由来二 什么是面向对象的程序设计及为什么要有它三 类和对象3.1 什么是对象,什么是类3.2 类相关知识3.3 对象相关知识3.4 对象之间的交互3.5 类名称空间与 ...
 - C#如何使用REST接口读写数据
			
原网站:http://www.codeproject.com/Tips/497123/How-to-make-REST-requests-with-Csharp 一个类,我们拷贝下来直接调用就行: 以 ...
 - Idea创建一个springboot多模块项目
			
一.创建空Maven项目 二.左边选择maven,右边可以什么不选,直接next: 三.填写artifactId,点击next直到finish 四.finish后,idea会生成如下结果模块,删除sr ...
 - Android应用的内存管理
			
管理应用的内存可以分为两个部分内容: 1. 首先需要理解:How Android Manages App Processes and Memory Allocation? 2. 其次需要考虑:我们设计 ...
 - 冲刺NOIP复习,算法知识点总结
			
前言 离NOIP还有一个星期,匆忙的把整理的算法补充完善,看着当时的整理觉得那时还年少.第二页贴了几张从贴吧里找来的图片,看着就很热血的.当年来学这个竞赛就是为了兴趣,感受计算机之美的. ...
 - [NOIP2018]普及组游记
			
想不到自己还有机会写游记 ——sysky 考完一个月后 DAY -INF 报名 还为了拍照下载了一个PS 特地把自己P白了一点233 花里胡哨得提交了rg.noi.cn DAY -14~-2 停课集训 ...
 - 2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周
			
2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周 博客要求 组内同学需各自发表博客 博客中需包含以下内容: 相关过程截图 关键代码解释 遇到的困难及解决 ...
 - Html链接标签:
			
<a>标签可以在网页上定义一个链接地址,它的常用属性有: (1)href属性 定义跳转的地址 (2)title属性 定义鼠标悬停时弹出的提示文字框 (定义鼠标悬停时,弹出的提示框中的文字) ...