欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別舉例詳解

 更新時間:2024年05月08日 09:45:10   作者:一只小熊貓呀  
這篇文章主要給大家介紹了關(guān)于MySQL中NULLIF?、IFNULL、IF的用法和區(qū)別的相關(guān)資料,nullif和ifnull都是MySQL中用于處理NULL值的函數(shù),但它們的用法和作用略有不同,下面給大家詳細介紹下,需要的朋友可以參考下

前言

在 MySQL 中,NULLIF、IFNULL 和 IF 是用于處理 NULL 值的三種不同的函數(shù)。

1. NULLIF 函數(shù)

NULLIF 函數(shù)用于比較兩個表達式,如果它們的值相等,則返回 NULL,否則返回第一個表達式的值。語法如下:

NULLIF(expr1, expr2)
  • expr1 和 expr2 是要比較的兩個表達式。

示例:

SELECT NULLIF(5, 5); -- 返回 NULL,因為兩個值相等
SELECT NULLIF(5, 10); -- 返回 5,因為兩個值不相等

2. IFNULL 函數(shù)

IFNULL 函數(shù)用于判斷第一個表達式是否為 NULL,如果是,則返回第二個表達式的值;否則,返回第一個表達式的值。語法如下:

IFNULL(expr1, expr2)
  • expr1 是要判斷是否為 NULL 的表達式。
  • expr2 是如果 expr1 為 NULL 時返回的值。

示例:

SELECT IFNULL(NULL, 'default_value'); -- 返回 'default_value',因為第一個表達式為 NULL
SELECT IFNULL('not_null_value', 'default_value'); -- 返回 'not_null_value',因為第一個表達式不為 NULL

3. IF 函數(shù)

IF 函數(shù)用于根據(jù)一個條件返回兩個值中的一個。語法如下:

sqlIF(condition, value_if_true, value_if_false)
  • condition 是一個條件表達式。
  • value_if_true 是如果條件為真時返回的值。
  • value_if_false 是如果條件為假時返回的值。

示例:

SELECT IF(5 > 3, 'true_value', 'false_value'); -- 返回 'true_value',因為條件為真
SELECT IF(5 < 3, 'true_value', 'false_value'); -- 返回 'false_value',因為條件為假

4. 區(qū)別總結(jié)

  • NULLIF 用于比較兩個表達式,如果相等則返回 NULL。
  • IFNULL 用于判斷一個表達式是否為 NULL,是則返回指定的默認值。
  • IF 用于根據(jù)條件返回兩個不同的值。

附:mysql函數(shù)IFNULL使用的注意事項

首先建一張簡單的表,用于sql語句的操作

建表語句如下:

CREATE TABLE `student` (
`id`  int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵' ,
`name`  varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '名字' ,
`score`  int(4) NOT NULL DEFAULT 0 COMMENT '分數(shù)' ,
PRIMARY KEY (`id`)
);

手動創(chuàng)建數(shù)據(jù)如下:

現(xiàn)在開始正題:

a. IFNULL的作用是什么?下面一個簡單的sql和結(jié)果說明,如果IFNULL(a,b),a接收的值為null,則返回b,否則返回a;

SELECT IFNULL(NULL,0);

b. 以下sql語句,大家可以預(yù)測下結(jié)果,按照IFNULL函數(shù)的作用,應(yīng)該返回0才對,可是結(jié)果并不是這樣。

SELECT IFNULL(score,0) FROM student WHERE ID = 4;

返回結(jié)果,居然是null,與預(yù)期的結(jié)果0不一致。

c. 以下語句返回正確結(jié)果0;

SELECT IFNULL((SELECT score FROM student WHERE ID = 4),0);

總結(jié):使用b方式使用IFNULL、SUM函數(shù)等需要確保有查詢記錄,否則也將返回null值,當(dāng)然也可使用c方式避免返回null值,避免程序中出現(xiàn)NPE異常。

總結(jié) 

到此這篇關(guān)于MySQL中NULLIF 、IFNULL、IF的用法和區(qū)別的文章就介紹到這了,更多相關(guān)MySQL NULLIF 、IFNULL、IF用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySql行轉(zhuǎn)列&列轉(zhuǎn)行方式

    MySql行轉(zhuǎn)列&列轉(zhuǎn)行方式

    在MySQL數(shù)據(jù)庫管理中,行轉(zhuǎn)列和列轉(zhuǎn)行是常見的數(shù)據(jù)處理需求,行轉(zhuǎn)列通常涉及將表中的行數(shù)據(jù)按照某種規(guī)則轉(zhuǎn)換成列形式,常用于報表生成、數(shù)據(jù)分析等場景,列轉(zhuǎn)行則是將原本以列形式存儲的數(shù)據(jù)轉(zhuǎn)換成行形式,以便于進行進一步的數(shù)據(jù)處理或分析
    2024-11-11
  • Mysql5.7.14安裝配置方法操作圖文教程(密碼問題解決辦法)

    Mysql5.7.14安裝配置方法操作圖文教程(密碼問題解決辦法)

    本篇文章主要涉及mysql5.7.14用以往的安裝方法安裝存在的密碼登錄不上,密碼失效等問題的解決辦法,需要的朋友參考下吧
    2017-01-01
  • MySQL數(shù)據(jù)遷移相關(guān)總結(jié)

    MySQL數(shù)據(jù)遷移相關(guān)總結(jié)

    這篇文章主要介紹了MySQL數(shù)據(jù)遷移的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-04-04
  • navicat連接mysql時出現(xiàn)1045錯誤的解決方法

    navicat連接mysql時出現(xiàn)1045錯誤的解決方法

    這篇文章主要為大家詳細介紹了navicat連接mysql時出現(xiàn)1045錯誤的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • MySQL中IF語句的基礎(chǔ)及進階用法

    MySQL中IF語句的基礎(chǔ)及進階用法

    在Mysql數(shù)據(jù)庫中實現(xiàn)判斷功能有很多方式,具體又分為函數(shù)和if語句形式,下面這篇文章主要給大家介紹了關(guān)于MySQL中IF語句的基礎(chǔ)及進階用法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • mysql如何增加數(shù)據(jù)表的字段(ALTER)

    mysql如何增加數(shù)據(jù)表的字段(ALTER)

    這篇文章主要介紹了mysql如何增加數(shù)據(jù)表的字段(ALTER),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • MySql如何去除字符串前綴,兩邊,后綴

    MySql如何去除字符串前綴,兩邊,后綴

    這篇文章主要介紹了MySql如何去除字符串前綴,兩邊,后綴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MYSQL代碼 定期備份Mysql數(shù)據(jù)庫

    MYSQL代碼 定期備份Mysql數(shù)據(jù)庫

    Mysql自動備份腳本供大家參考,實現(xiàn)了定期備份Mysql數(shù)據(jù)庫,并且可以選在在每周的一天做指定目錄下文件的全面?zhèn)浞?,備份文件自動上傳到你指定的FTP上,保證了備份的可靠性。
    2009-04-04
  • MySQL ORDER BY 的實現(xiàn)分析

    MySQL ORDER BY 的實現(xiàn)分析

    總的來說,在 MySQL 中的ORDER BY有兩種排序?qū)崿F(xiàn)方式,一種是利用有序索引獲取有序數(shù)據(jù),另一種則是通過相應(yīng)的排序算法,將取得的數(shù)據(jù)在內(nèi)存中進行排序
    2012-07-07
  • SQL優(yōu)化老出錯,那是你沒弄明白MySQL解釋計劃用法

    SQL優(yōu)化老出錯,那是你沒弄明白MySQL解釋計劃用法

    本篇文章講的是SQL優(yōu)化老出錯,那是你沒弄明白MySQL解釋計劃用法,有興趣的小伙伴速度來看看吧,希望本篇文章能夠幫助到你
    2021-11-11

最新評論