MySql 裡的IFNULL、NULLIF和ISNULL用法

來源:互聯網
上載者:User

今天用到了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   。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.