Mysql中IFNULL函數(shù)舉例詳解
一、概念
在mysql中IFNULL() 函數(shù)用于判斷第一個(gè)表達(dá)式是否為 NULL,如果第一個(gè)值不為NULL就執(zhí)行第一個(gè)值。第一個(gè)值為 NULL 則返回第二個(gè)參數(shù)的值。
使用技巧見(jiàn):3.2舉例二 比較常用
二、語(yǔ)法
IFNULL(a, b)
三、Demo 舉例說(shuō)明
創(chuàng)建表
create table student_one( sno varchar(20) not null primary key, sname varchar(20) not null, ssex varchar(20) not null, sbirthday datetime, class varchar(20) )charset=utf8;
加入數(shù)據(jù)
insert into student_one values('1','陳奇','男','2000-11-02','1');
insert into student_one values('2','陳飛','男','1999-12-05','2');
insert into student_one values('3','周杰','女','1989-03-01','3');
insert into student_one values('4','昆凌','男','1989-04-15','4');
insert into student_one values('5','王麗','女','1999-05-16','5');
insert into student_one values('6','蔡蔡','男','2000-08-17','6');運(yùn)行結(jié)果

3.1舉例一
第一個(gè)參數(shù)不為NULL,返回第一個(gè)參數(shù),下面的代碼中’hello’不為NULL,就返回的是’hello’
SELECT IFNULL('hello', 'world');運(yùn)行結(jié)果

3.2.1舉例二
從student_one表里面查詢(xún)sno/sname字段,如果sno字段不為空,就返回sno字段,如果為空就返回sname字段。且取別名為‘字段結(jié)果’
SELECT IFNULL(sno,sname) AS '字段結(jié)果' FROM student_one
運(yùn)行結(jié)果

從student_one表里面class=4的行查詢(xún)sno或者sname字段
SELECT IFNULL(sno,sname) FROM student_one WHERE class=4
運(yùn)行結(jié)果

3.2.2 業(yè)務(wù)場(chǎng)景下使用舉例
或者 多表 字段 定義為某個(gè)字段 場(chǎng)景如:
ifnull( dga.code ,dr.code) agentCode, 含義說(shuō)明:
總代code,經(jīng)銷(xiāo)商code 作為 別名agentCode的值。
使用場(chǎng)景:當(dāng)經(jīng)銷(xiāo)商上級(jí)有總代理時(shí) 使用總代理的code,否則使用經(jīng)銷(xiāo)商的code的場(chǎng)景。
select
ds.type storeType,
dr.type rtm,
ifnull( dga.code ,dr.code) agentCode,
ifnull(dga.agent_name_cn ,dr.name_cn) agentName,
dr.code resellerCode,
dr.name_cn resellerName,
ds.code code
FROM dg_store ds
LEFT JOIN dg_store_type dst ON dst.id = ds.type
LEFT JOIN dg_reseller dr ON dr.code = ds.reseller_code
LEFT JOIN dg_general_agent dga ON dga.id = dr.agent_id查詢(xún)結(jié)果示例如下

3.3舉例三
從student_one表里面查詢(xún)sno=10的class字段,如果表中沒(méi)有class=10的字段,就會(huì)返回0
SELECT IFNULL((SELECT class FROM student_one WHERE sno = 10),0);
運(yùn)行結(jié)果

3.4舉例四
從student_one表里面查詢(xún)sno等于1的sname字段,如果為空,就從student_one表里面查詢(xún)sno等于2的ssex字段
SELECT IFNULL((SELECT sname from student_one WHERE sno=1),(SELECT ssex from student_one WHERE sno=2));
運(yùn)行結(jié)果

從student_one表里面查詢(xún)sno等于1的sname字段,如果為空,就從student_one表里面查詢(xún)sno等于2的ssex字段。如果前面的都為空,就從student_one表里面查詢(xún)sno等于2的sbirthday字段
SELECT IFNULL(IFNULL((SELECT sname from student_one WHERE sno=1),(SELECT ssex from student_one WHERE sno=2)),(SELECT sbirthday from student_one WHERE sno=2));
運(yùn)行結(jié)果

注意事項(xiàng)
1.查詢(xún)語(yǔ)句要用括號(hào)括起來(lái)
2.一個(gè)IFNULL只能對(duì)應(yīng)一條判斷語(yǔ)句,
3.IFNULL僅能查詢(xún)一個(gè)字段,否則會(huì)報(bào)錯(cuò)
總結(jié)
到此這篇關(guān)于Mysql中IFNULL函數(shù)舉例詳解的文章就介紹到這了,更多相關(guān)Mysql中IFNULL函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
對(duì)MySQL幾種聯(lián)合查詢(xún)的通俗解釋
這篇文章主要介紹了LEFT JOIN 關(guān)鍵字會(huì)從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒(méi)有匹配的行。下面給個(gè)通俗的解釋吧2015-01-01
MySQL定時(shí)刪除XX天數(shù)據(jù)示例代碼
通過(guò)使用MySQL的事件調(diào)度器,我們可以方便地創(chuàng)建定時(shí)任務(wù)來(lái)定期清理數(shù)據(jù)庫(kù)中的過(guò)期數(shù)據(jù),本文介紹了如何創(chuàng)建定時(shí)任務(wù)以及如何刪除3個(gè)月前的數(shù)據(jù)作為示例,感興趣的朋友跟隨小編一起看看吧2023-09-09
MySQL去重中distinct和group?by的區(qū)別淺析
今天無(wú)意中聽(tīng)到有同事在討論,distinct和group by有什么區(qū)別,下面這篇文章主要給大家介紹了關(guān)于MySQL去重中distinct和group?by區(qū)別的相關(guān)資料,需要的朋友可以參考下2022-11-11
MySQL如何實(shí)現(xiàn)負(fù)載均衡功能
這篇文章主要介紹了MySQL如何實(shí)現(xiàn)負(fù)載均衡功能,學(xué)習(xí)過(guò)數(shù)據(jù)庫(kù)的朋友們都會(huì)知道MySQL,那么如何在MySQL下實(shí)現(xiàn)負(fù)載均衡功能呢?本文就將為大家細(xì)致地介紹一下2019-06-06
Mysql?COUNT()函數(shù)基本用法及應(yīng)用詳解
這篇文章主要介紹了Mysql?COUNT()函數(shù)基本用法及應(yīng)用的相關(guān)資料,COUNT()函數(shù)是SQL中常用的聚合函數(shù),用于統(tǒng)計(jì)滿(mǎn)足特定條件的記錄數(shù),它可以靈活地應(yīng)用于各種查詢(xún)場(chǎng)景,幫助用戶(hù)快速獲取所需的數(shù)據(jù)統(tǒng)計(jì)信息,需要的朋友可以參考下2024-12-12
dubbo中zookeeper請(qǐng)求超時(shí)問(wèn)題:mybatis+spring連接mysql8.0.15的配置
這篇文章主要介紹了dubbo中zookeeper請(qǐng)求超時(shí)問(wèn)題:mybatis+spring連接mysql8.0.15的配置,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
詳解mysql的limit經(jīng)典用法及優(yōu)化實(shí)例
這篇文章詳細(xì)介紹了mysql的limit經(jīng)典用法及優(yōu)化實(shí)例,有需要的朋友可以參考一下2013-09-09
MySQL中索引的常見(jiàn)問(wèn)題與性能優(yōu)化詳解
索引就像圖書(shū)館的檢索系統(tǒng),設(shè)計(jì)得好,找書(shū)會(huì)很快;設(shè)計(jì)的不好,反而會(huì)越用越慢,下面小編就和大家詳細(xì)介紹一下MySQL中索引的常見(jiàn)問(wèn)題與性能優(yōu)化吧2025-11-11

