Mysql中isnull,ifnull,nullif的用法及語義詳解
Mysql中isnull,ifnull,nullif的用法
在 MySQL 中,ISNULL、IFNULL 和 NULLIF 都與空值(NULL)的判斷或處理有關,但它們的用途和語義不同
1. ISNULL(expr) → 判斷是否為 NULL
功能:返回 1(真)如果表達式為 NULL,否則返回 0(假)
示例:
SELECT ISNULL(NULL); -- 結果:1 SELECT ISNULL(123); -- 結果:0 SELECT ISNULL(name) FROM users;
2. IFNULL(expr1, expr2) → NULL 值替換
功能:如果 expr1 是 NULL,返回 expr2;否則返回 expr1。
常用于:空值替換為默認值
示例:
SELECT IFNULL(NULL, 'default'); -- 結果:'default'
SELECT IFNULL('hello', 'default'); -- 結果:'hello'
-- 示例:替換用戶昵稱為空時的默認名稱
SELECT IFNULL(nickname, '匿名') AS display_name FROM users;等價于:
CASE WHEN nickname IS NULL THEN '匿名' ELSE nickname END
3. NULLIF(expr1, expr2) → 相等則返回 NULL
功能:如果 expr1 = expr2,返回 NULL;否則返回 expr1
常用于:避免除零錯誤,或“兩個值相同視為無效”的判斷
示例:
SELECT NULLIF(5, 5); -- 結果:NULL SELECT NULLIF(5, 3); -- 結果:5 -- 示例:除法避免除以 0 SELECT 10 / NULLIF(denominator, 0) FROM numbers;
總結
| 函數(shù)名 | 主要用途 | 示例 | 結果 |
|---|---|---|---|
ISNULL(x) | 判斷是否為 NULL | ISNULL(NULL) | 1 |
IFNULL(x, y) | 如果 x 是 NULL,返回 y | IFNULL(NULL, 'N/A') | ‘N/A’ |
NULLIF(x, y) | 如果 x = y,返回 NULL | NULLIF(5, 5) | NULL |
補充:MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用
在MySQL中可以使用IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)進行流程的控制。
1、IF()函數(shù)的使用
IF(expr1,expr2,expr3),如果expr1的值為true,則返回expr2的值,如果expr1的值為false,則返回expr3的值。
SELECT IF(TRUE,'A','B'); -- 輸出結果:A SELECT IF(FALSE,'A','B'); -- 輸出結果:B
2、IFNULL()函數(shù)的使用
IFNULL(expr1,expr2),如果expr1的值為null,則返回expr2的值,如果expr1的值不為null,則返回expr1的值。
SELECT IFNULL(NULL,'B'); -- 輸出結果:B
SELECT IFNULL('HELLO','B'); -- 輸出結果:HELLO3、NULLIF()函數(shù)的使用
NULLIF(expr1,expr2),如果expr1=expr2成立,那么返回值為null,否則返回值為expr1的值。
SELECT NULLIF('A','A'); -- 輸出結果:null
SELECT NULLIF('A','B'); -- 輸出結果:A4、ISNULL()函數(shù)的使用
ISNULL(expr),如果expr的值為null,則返回1,如果expr1的值不為null,則返回0。
SELECT ISNULL(NULL); -- 輸出結果:1
SELECT ISNULL('HELLO'); -- 輸出結果:0到此這篇關于Mysql中isnull,ifnull,nullif的用法的文章就介紹到這了,更多相關mysql isnull,ifnull,nullif用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的用法解讀
- MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別舉例詳解
- MySql中的IFNULL、NULLIF和ISNULL用法詳解
- MySQL流程控制IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用
- MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函數(shù)的使用詳解
- mysql中null(IFNULL,COALESCE和NULLIF)相關知識點總結
- MySql中的IFNULL、NULLIF和ISNULL用法詳解
- MYSQL中IFNULL和NULLIF函數(shù)的區(qū)別小結
相關文章
Mysql 存在多條數(shù)據時如何按時間取最新的那一組數(shù)據(思路詳解)
這篇文章主要介紹了Mysql 存在多條數(shù)據時如何按時間取最新的那一組數(shù)據,本文給大家分享兩種思路結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-04-04
MySQL報錯ERROR?2002?(HY000):?Canot?connect?to?local?MyS
ERROR?2002是一個常見的錯誤,這可能會阻礙數(shù)據庫的正常使用,本文就來介紹一下該錯誤的解決方法,具有一定的參考價值,感興趣的可以了解一下2024-07-07
抽取oracle數(shù)據到mysql數(shù)據庫的實現(xiàn)過程
今天小編就為大家分享一篇關于抽取oracle數(shù)據到mysql數(shù)據庫的實現(xiàn)過程,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-02-02

