MySql 中IFNULL、ISNULL、NULLIF用法(数据库判空)

来源:http://blog.csdn.net/a466350665/article/details/52994761

http://blog.csdn.net/xingyu0806/article/details/52080962

 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。

ISNULL(expr) 用法:如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。

  mysql> select isnull(1+1);
                       -> 0
    mysql> select isnull(1/0);
                       -> 1
    使用= 的null 值对比通常是错误的。

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。

时间: 2024-11-06 11:27:59

MySql 中IFNULL、ISNULL、NULLIF用法(数据库判空)的相关文章

SQLserver中ISNULL函数与Mysql中IFNULL函数的用法

本文介绍下,sql server中的isnull函数,以及mysql中的ifnull函数,介绍二者的具体用法与区别,有兴趣的朋友可以研究下哦. 先来看SQL Serve的ISNULL函数: ISNULL(check_expression,replacement_value) 1.check_expression与replacement_value的数据类型必须一致. 2.如果check_expression为NULL,则返回replacement_value. 3.如果check_express

Mysql 中的CASE WHEN 用法

在SELECT语句查询中可以使用CASE WHEN对查询出来的结果,进行一个类似于if else的判断. 具体的用法 1. SELECT a.website_id, b.customer_name, a.website_enddate, c.member_name, d.websitetype_id,            CASE                 WHEN d.websitetype_id=1 THEN 400                WHEN d.websitetype

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; 否则其返回值为e

MYSQL中replace into的用法

今天在编程的时候,学习了replace into的用法,真的很好用,是insert into的增强版.在向表中插入数据时,我们经常会遇到这样的情况:1.首先判断数据是否存在:2.如果不存在,则插入:3.如果存在,则更新. 在SQL Server中可以这样处理: if not exists (select 1 from t where id = 1)    insert into t(id, update_time) values(1, getdate())  else   update t se

MYSQL中replace into的用法以及与inset into的区别

在向表中插入数据时,我们经常会遇到这样的情况:1.首先判断数据是否存在:2.如果不存在,则插入:3.如果存在,则更新. 在SQL Server中可以这样处理: if not exists (select 1 from t where id = 1)? insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = 1 那么 MySQL 中如何实现这样的

mysql中INSTR函数的用法

INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTopic ORDER BY INSTR( topicTitle, 'ha' ) > 0 DESC SELECT INSTR( topicTitle, 'ha' ) FROM tblTopic mysql中使用instr配合IN排序 将instr结果作为一列,按其排序 select id,1 from world_guide where

MySql 中Join操作的用法

SQL标准中的Join的类型: 首先,设置表employees和department的数据为: 1.inner join - on操作类型 内连接inner join是基于连接谓词将两张表(如A和B)的列组合在一起的,产生新的结果表. 例子: SELECT * FROM employees a inner join department b ON a.department_id = b.department_id 查询结果为: 注意:inner join 可以简写为join,该查询得出的结果为两

mysql 中find_in_set()和in()用法比较

在mysql中in可以包括指定的数字,而find_in_set()用于特定的数据类型. find_in_set 函数使用方法 个例子来说:有个文章表里面有个type字段,它存储的是文章类型,有 1头条.2推荐.3热点.4图文...1,12,13 等等 .现在有篇文章他既是 头条,又是热点,还是图文,type中以 1,3,4 的格式存储.那我们如何用sql查找所有type中有4图文标准的文章呢??这就要我们的 find_in_set 出马的时候到了.以下为引用的内容: select * from

MySQL中关于coalesce的用法

coalesce在sql中其实是一个很有用的函数:coalesce()主要作用是返回第一个非null值: 例如: coalesce(null, null, 2, 4) ==> 返回2, coalesce(null,null) ==> 返回null 当然,coalesce()函数的最主要作用判断一个值是不是null,如果是,则返回一个定值, 例如: coalesce(money,0)  ==> 解释: 返回数据库中字段为money的值,如果money为null,则返回0: 这个就相当于ca