mysql ifnull函式使用詳解

2021-07-23 18:56:14 字數 1482 閱讀 9469

用法說明

1 ifnull(expr1,expr2)

如果 expr1 不是 null,ifnull() 返回 expr1,否則它返回 expr2。

ifnull()返回乙個數字或字串值,取決於它被使用的上下文環境。

例如:**如下

複製**

select ifnull(col1, 'default-value'), col2 from test;

當test表的col1欄位為null時,資料庫返回的結果就為default-value,否則就返回本身的值。但是當col1欄位的值為空字串(」),由於空字元不是null,因此返回的結果還是空字串。如果需要把空字串或null值都用default-value代替,顯然ifnull是不行,不過使用case when語句能搞定,示例如下:

**如下

複製**

select c1,

(case when c2 = '' or c2 is null then 'default-value' else  c2 end)

from test;

我們先舉一些例子:

**如下

複製**

mysql> select ifnull(1,0);

+-------------+

| ifnull(1,0) |

+-------------+

|           1 |

+-------------+

1 row in set

由於 expr1 是 1,不為 null,所以函式返回 1. 我們可以再試下,如果讓 expr1 為 null,是否能返回第二個引數呢? 不妨讓 expr1 = 1/0, 由於除數為0,結果就為 null 了。

**如下

複製**

mysql> select ifnull(1/0,'nowamagic');

+-------------------------+

| ifnull(1/0,'nowamagic') |

+-------------------------+

| nowamagic               |

+-------------------------+

1 row in set

前面的引數為 null,就返回第二個引數 nowamagic 了。

這個函式不難理解,為什麼要介紹這個函式呢?這是為了後面講述 mysql 下的高階黑客技術做的基礎知識準備,你可以先試著理解這麼一句

**如下

複製**

update table set views = '1' where id = -2441 or (ord(mid((select ifnull(cast(firstname as char),0x20) from nowamagic.`tb2` order by id limit 1,1),2,1))>112)#

裡面用到了 ifnull 這個函式,你了解它的作用嗎?

resource:

MYSQL IFNULL函式的使用

下文對mysql ifnull函式的使用進行了詳細的敘述,供您參考學習,如果您在mysql ifnull函式使用方面遇到過類似的問題,不妨一看。mysql ifnull expr1,expr2 如果expr1不是null,ifnull 返回expr1,否則它返回expr2。ifnull 返回乙個數字...

MYSQL IFNULL函式的使用

下文對mysql ifnull函式的使用進行了詳細的敘述,供您參考學習,如果您在mysql ifnull函式使用方面遇到過類似的問題,不妨一看。mysql ifnull expr1,expr2 如果expr1不是null,ifnull 返回expr1,否則它返回expr2。ifnull 返回乙個數字...

MYSQL IFNULL函式的使用

ifnull函式是mysql資料庫中最重要的函式之一,下面就對該函式的使用方面進行分析,希望對您能夠有所幫助。下文對mysql ifnull函式的使用進行了詳細的敘述,供您參考學習,如果您在mysql ifnull函式使用方面遇到過類似的問題,不妨一看。mysql ifnull expr1,expr...