程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySql 裡的IFNULL、NULLIF和ISNULL用法,ifnullnullif

MySql 裡的IFNULL、NULLIF和ISNULL用法,ifnullnullif

編輯:MySQL綜合教程

MySql 裡的IFNULL、NULLIF和ISNULL用法,ifnullnullif


今天用到了MySql裡的isnull才發現他和MSSQL裡的還是有點區別,現在簡單總結一下:

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   。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved