日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL之IFNULL()、ISNULL、NULLIF用法

發布時間:2025/3/15 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL之IFNULL()、ISNULL、NULLIF用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MySQL之IFNULL()、ISNULL、NULLIF用法

IFNULL語法說明


IFNULL(expr1,expr2)

如果 expr1 不是 NULL,IFNULL() 返回 expr1,否則它返回 expr2。
IFNULL()返回一個數字或字符串值,取決于它被使用的上下文環境。
舉個栗子:

1 mysql> SELECT IFNULL(1,0); 2 +-------------+ 3 | IFNULL(1,0) | 4 +-------------+ 5 | 1 | 6 +-------------+ 7 1 row in set

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

1 mysql> SELECT IFNULL(null,'expr1 is null'); 2 +------------------------------+ 3 | IFNULL(null,'expr1 is null') | 4 +------------------------------+ 5 | expr1 is null | 6 +------------------------------+ 7 1 row in set

當 expr1 是 true,不為 NULL,函數返回什么呢? 我們可以再試下,不妨讓 expr1 = true,然后查看結果:

1 mysql> SELECT IFNULL(true,'expr1 is true'); 2 +------------------------------+ 3 | IFNULL(true,'expr1 is true') | 4 +------------------------------+ 5 | 1 | 6 +------------------------------+ 7 1 row in set

結果是1。為什么不是true?難道是因為布爾型true轉為數值型1?那當 expr1 是 false,不為 NULL,函數返回什么呢? 我們可以再試下,不妨讓 expr1 = false,然后查看結果:

1 mysql> SELECT IFNULL(false,'expr1 is false'); 2 +-------------------------------+ 3 | IFNULL(false,'expr1 is false')| 4 +-------------------------------+ 5 | 0 | 6 +-------------------------------+ 7 1 row in set

結果是0。為什么是0,而不是false?難道是因為布爾型false轉為數值型0?

我們接下來測試一下IFNULL(1/0,10)

1 mysql> SELECT IFNULL(1/0,10); 2 +---------------------+ 3 | IFNULL(1/0,10) | 4 +---------------------+ 5 | 10 | 6 +---------------------+ 7 1 row in set

結果是10,這意味著1/0的結果為NULL,即空。所以返回10。
那IFNULL(0/1,10)呢?

1 mysql> SELECT IFNULL(0/1,10); 2 +---------------------+ 3 | IFNULL(0/1,10) | 4 +---------------------+ 5 | 0 | 6 +---------------------+ 7 1 row in set

結果為0。是因為0/1=0,0不是空值。從這里看1/0似乎是特殊的結果,正常情況下0不能作除數。(被除數/除數=商)


ISNULL語法說明


ISNULL(expr) ;
如果expr 為null,那么ISNULL() 的返回值為 1,否則返回值為 0。

1 mysql> SELECT ISNULL(1+1); 2 +---------------------+ 3 | ISNULL(1+1) | 4 +---------------------+ 5 | 0 | 6 +---------------------+ 7 1 row in set

因為1+1=2,值不為空,故返回 0 。

1 mysql> SELECT ISNULL(1/0); 2 +---------------------+ 3 | ISNULL(1/0) | 4 +---------------------+ 5 | 1 | 6 +---------------------+ 7 1 row in set

1/0的結果為空,故返回 1 。


NULLIF語法說明


NULLIF(expr1,expr2);
如果expr1等于expr2,則返回空(Null)。如果expr1不等于expr2則返回expr1。

1 mysql> SELECT NULLIF(1,0); 2 +-------------+ 3 | NULLIF(1,0) | 4 +-------------+ 5 | 1 | 6 +-------------+ 7 1 row in set 1 mysql> SELECT NULLIF(1,1); 2 +-------------+ 3 | NULLIF(1,1) | 4 +-------------+ 5 | (Null) | 6 +-------------+ 7 1 row in set

大家注意:SELECT NULLIF(1/0,1)的結果

1 mysql> SELECT NULLIF(1/0,1); 2 +-------------+ 3 | NULLIF(1/0,1) | 4 +-------------+ 5 | (Null) | 6 +-------------+ 7 1 row in set

總結

以上是生活随笔為你收集整理的MySQL之IFNULL()、ISNULL、NULLIF用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。