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

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

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

前言

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

1. NULLIF 函數(shù)

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

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

示例:

SELECT NULLIF(5, 5); -- 返回 NULL,因?yàn)閮蓚€(gè)值相等
SELECT NULLIF(5, 10); -- 返回 5,因?yàn)閮蓚€(gè)值不相等

2. IFNULL 函數(shù)

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

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

示例:

SELECT IFNULL(NULL, 'default_value'); -- 返回 'default_value',因?yàn)榈谝粋€(gè)表達(dá)式為 NULL
SELECT IFNULL('not_null_value', 'default_value'); -- 返回 'not_null_value',因?yàn)榈谝粋€(gè)表達(dá)式不為 NULL

3. IF 函數(shù)

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

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

示例:

SELECT IF(5 > 3, 'true_value', 'false_value'); -- 返回 'true_value',因?yàn)闂l件為真
SELECT IF(5 < 3, 'true_value', 'false_value'); -- 返回 'false_value',因?yàn)闂l件為假

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

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

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

首先建一張簡單的表,用于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 '分?jǐn)?shù)' ,
PRIMARY KEY (`id`)
);

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

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

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

SELECT IFNULL(NULL,0);

b. 以下sql語句,大家可以預(yù)測(cè)下結(jié)果,按照IFNULL函數(shù)的作用,應(yīng)該返回0才對(duì),可是結(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL的批量更新和批量新增優(yōu)化方式

    MySQL的批量更新和批量新增優(yōu)化方式

    這篇文章主要介紹了MySQL的批量更新和批量新增優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • MySQL數(shù)據(jù)庫中的UPDATE(更新數(shù)據(jù))詳解

    MySQL數(shù)據(jù)庫中的UPDATE(更新數(shù)據(jù))詳解

    這篇文章主要詳細(xì)介紹了MySQL的UPDATE語句,包括其基本語法、高級(jí)用法、性能優(yōu)化策略以及注意事項(xiàng),通過示例和實(shí)戰(zhàn),幫助讀者更好地理解和應(yīng)用這一重要的SQL命令,需要的朋友可以參考下
    2024-12-12
  • MySQL?字符串截取函數(shù)及用法詳解

    MySQL?字符串截取函數(shù)及用法詳解

    在MySQL中,字符串截取是常見的操作,主要用于從字符串中提取特定部分,MySQL?提供了多種函數(shù)來實(shí)現(xiàn)這一功能,包括?LEFT()、RIGHT()、SUBSTRING()、MID()、SUBSTR()?和?SUBSTRING_INDEX()?等,本文將詳細(xì)介紹這些函數(shù)的用法,并通過示例進(jìn)行說明,需要的朋友可以參考下
    2025-05-05
  • MySQL讀寫分離原理詳細(xì)解析

    MySQL讀寫分離原理詳細(xì)解析

    這篇文章主要介紹了MySQL讀寫分離原理詳細(xì)解析,讀寫分離是基于主從復(fù)制來實(shí)現(xiàn)的,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • mysql 5.7.11 winx64快速安裝配置教程

    mysql 5.7.11 winx64快速安裝配置教程

    這篇文章主要為大家分享了mysql5.7.11 winx64安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-07-07
  • MySQL排序檢索數(shù)據(jù)操作方法梳理

    MySQL排序檢索數(shù)據(jù)操作方法梳理

    SELECT語句是SQL中最常用的語句。它的用途是從一個(gè)或多個(gè)表中檢索信息。為了使用SELECT檢索表數(shù)據(jù),必須至少給出兩條信息:想選擇什么、從什么地方選擇,這篇文章主要介紹了MySQL排序檢索數(shù)據(jù)
    2022-10-10
  • MySQL查詢條件常見用法詳解

    MySQL查詢條件常見用法詳解

    這篇文章主要介紹了MySQL查詢條件常見用法,結(jié)合實(shí)例形式總結(jié)分析了MySQL常見的各類查詢條件與簡單使用方法,需要的朋友可以參考下
    2019-11-11
  • MySQL數(shù)據(jù)表分區(qū)技術(shù)PARTITION詳解

    MySQL數(shù)據(jù)表分區(qū)技術(shù)PARTITION詳解

    在處理大規(guī)模數(shù)據(jù)時(shí),數(shù)據(jù)庫性能的優(yōu)化變得尤為重要,MySQL提供了一種稱為“分區(qū)”(Partitioning)的技術(shù),可以顯著提高查詢效率和管理大型數(shù)據(jù)庫表的能力,本文將詳細(xì)介紹MySQL中的數(shù)據(jù)表分區(qū)技術(shù),包括其基本概念、類型以及如何實(shí)現(xiàn)和維護(hù),需要的朋友可以參考下
    2025-02-02
  • 簡單介紹下MYSQL的索引類型

    簡單介紹下MYSQL的索引類型

    本文介紹了七種MySQL索引類型。在數(shù)據(jù)庫表中,對(duì)字段建立索引可以大大提高查詢速度。通過善用這些索引,可以令MySQL的查詢和運(yùn)行更加高效。
    2015-07-07
  • PHP函數(shù)使用說明(補(bǔ)充)

    PHP函數(shù)使用說明(補(bǔ)充)

    PHP函數(shù)使用說明,應(yīng)用舉例,精簡點(diǎn)評(píng),希望對(duì)您學(xué)習(xí)php有所幫助。
    2010-07-07

最新評(píng)論