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

MySql中的IFNULL、NULLIF和ISNULL用法詳解

編輯:關於MYSQL數據庫

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

以上所述是小編給大家介紹的MySql中的IFNULL、NULLIF和ISNULL用法詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對網站的支持!

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