isnull(expr)html
如expr爲null,那麼isnull()的返回值爲1,不然返回值爲0。 mysql
mysql>select isnull(1+1);sql
->0函數
mysql>select isnull(1/0);測試
->1.net
使用=的null值對比一般是錯誤的。 3d
isnull()函數同is null比較操做符具備一些相同的特性。請參見有關is null 的說明。orm
ifnull(expr1,expr2)htm
假如expr1不爲NULL,則IFNULL()的返回值爲expr1; 不然其返回值爲expr2。IFNULL()的返回值是數字或是字符串,具體狀況取決於其所使用的語境。blog
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、IF函數
表達式:IF(expr1,expr2,expr3)
知足條件expr1即條件expr1返回true
則expr2不然就是expr3 返回false
做爲排序條件使用時 放在order by 後
eg:
1. SELECT IF(1=1,2,3); 則輸出2
2.SELECT IF(1=2,2,3);則輸出3
select * from test_table order by if(ISNULL(idcard),1,0)
2、IFNULL函數
表達式:IFNULL(expr1,expr2)
若是expr1值爲NULL,則輸出expr2
若是expr1值不爲空則輸出expr1自己
eg:
1.SELECT IFNULL(null,」2」);則輸出2
2.SELECT IFNULL(3,」2」);則輸出3
3、is not null函數
select * from test where name is not null;
4、isnull(expr) 的用法:
如expr 爲null,那麼isnull() 的返回值爲 1,不然返回值爲 0。