MySql的IF和IFNULL函式

2021-09-05 10:19:43 字數 1864 閱讀 8251

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...