用法說明
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...