MySQL 的IFNULL 函式的作用

2021-08-28 14:19:45 字數 1003 閱讀 6257

在使用left join等聯表查詢時,常遇到某些欄位為null,一般都在後台語言使用if (a==null) 判斷做處理,其實mysql本身也有乙個ifnull函式可以處理。同時我們也來說說isnull()和nullif()函式。

一、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。

MySql的IF和IFNULL函式

mysql的if既可以作為表示式用,也可在儲存過程中作為流程控制語句使用,如下是做為表示式使用 if expr1,expr2,expr3 如果 expr1 是true expr1 0 and expr1 null 則 if 的返回值為expr2 否則返回值則為 expr3。if 的返回值為數字值或字...

MYSQL中的IFNULL與IF函式

1.ifnull expr1,expr2 2.如果expr1不是null,ifnull 返回expr1,否則它返回expr2。ifnull 返回乙個數字或字串值,取決於它被使用的上下文環境。3.mysql select ifnull 1,0 4.1 5.mysql select ifnull 0,1...

關於MySQL中的IFNULL函式和IF函式

mysql中的ifnull函式類似於oracle中的nvl函式,其表示式為 ifnull expr1,expr2 含義是 如果第乙個引數不為空,則返回第乙個引數,否則返回第二個引數。if expr1,expr2,expr3 類似於oracle中的nvl2函式,含義是 如果第乙個表示式的值為true ...