mysql的if既可以作為表示式用,也可在儲存過程中作為流程控制語句使用,如下是做為表示式使用:
if(expr1,expr2,expr3)
如果 expr1 是true (expr1 <> 0 and expr1 <> null),則 if()的返回值為expr2; 否則返回值則為 expr3。if() 的返回值為數字值或字串值,具體情況視其所在語境而定。
或者:select
在第乙個方案的返回結果中, value=compare-value。而第二個方案的返回結果是第一種情況的真實結果。如果沒有匹配的結果值,則返回結果為else後的結果,如果沒有else 部分,則返回值為 null。
例如:
select
假如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()來判斷是否為 null 值。
說明:null 與任何值的直接比較都為 null。
1) null<>null 的返回結果是 null,而不是 false。
2) null=null 的返回結果是 null,而不是 true。
3) null<>1 的返回結果是 null,而不是 true。
select ifnull(null<>null, 'ffff');
select ifnull(null=null, 'ffff');
select ifnull(null<>1, 'ffff');
都是輸出:ffff
Mysql的IFNULL 和NULLIF用法小結
寫在前面 ifnull ifnull 1,0 返回1 ifnull 0,1 返回0 ifnull 引數一,引數二 引數一可以為表中某欄位,若該字段為null,則就讓該字段的值為引數二的值 實際用法 1 不帶引數 可用在where條件當中用作查詢的篩選條件,where 某欄位 is null 或者 w...
關於MySQL中的IFNULL函式和IF函式
mysql中的ifnull函式類似於oracle中的nvl函式,其表示式為 ifnull expr1,expr2 含義是 如果第乙個引數不為空,則返回第乙個引數,否則返回第二個引數。if expr1,expr2,expr3 類似於oracle中的nvl2函式,含義是 如果第乙個表示式的值為true ...
mysql中ifnull的用法
假如expr1不為null,則 ifnull 的返回值為expr1 否則其返回值為 expr2。ifnull 的返回值是數字或是字串,具體情況取決於其所使用的語境。select ifnull 1,0 1 select ifnull null,10 10 select ifnull 1 0,10 10...