Home  >  Article  >  Database  >  MySql 里的IFNULL、NULLIF和ISNULL用法

MySql 里的IFNULL、NULLIF和ISNULL用法

WBOY
WBOYOriginal
2016-06-07 15:35:131232browse

mysql中isnull,ifnull,nullif的用法如下: 1.ISNULL( expr ) 如 expr 为NULL,那么ISNULL() 的返回为 1,否则返回为 0。 2.IFNULL( expr1 , expr2 ) 假如 expr1 不为 NULL,则 IFNULL() 的返回为 expr1 ; 否则其返回为 expr2 。IFNULL()的返回是数字或是字符

mysql中isnull,ifnull,nullif的用法如下:

1.ISNULL(expr)
expr 为NULL,那么ISNULL() 的返回值为 1,否则返回值为 0。

2.IFNULL(expr1,expr2)
假如expr1 不为 NULL,则 IFNULL() 的返回值为 expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

该函数与oracle中nvl(空值转换函数)相同。

select ifnull(null,0);
两个参数,如果第一个参数是null值,就输出第二个。


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   。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:浅谈sqlserver的事务锁Next article:SqlServer2008r2卸载