MySQL ifnull()函數(shù)的具體使用
MySQL IFNULL函數(shù)簡(jiǎn)介
MySQL IFNULL
函數(shù)是MySQL控制流函數(shù)之一,它接受兩個(gè)參數(shù),如果不是NULL,則返回第一個(gè)參數(shù)。 否則,IFNULL
函數(shù)返回第二個(gè)參數(shù)。
兩個(gè)參數(shù)可以是文字值或表達(dá)式。
以下說明了IFNULL函數(shù)的語(yǔ)法:
IFNULL(expression_1,expression_2);
如果expression_1不為NULL,則IFNULL函數(shù)返回expression_1; 否則返回expression_2的結(jié)果。
IFNULL函數(shù)根據(jù)使用的上下文返回字符串或數(shù)字。
如果要返回基于TRUE或FALSE條件的值,而不是NULL,則應(yīng)使用IF函數(shù)。
使用以下查詢獲取所有聯(lián)系人的姓名和電話:
ps:mysql函數(shù)IFNULL使用的注意事項(xiàng)
首先建一張簡(jiǎn)單的表,用于sql語(yǔ)句的操作
建表語(yǔ)句如下:
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è)簡(jiǎn)單的sql和結(jié)果說明,如果IFNULL(a,b),a接收的值為null,則返回b,否則返回a;
SELECT IFNULL(NULL,0);
b. 以下sql語(yǔ)句,大家可以預(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. 以下語(yǔ)句返回正確結(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異常。
到此這篇關(guān)于MySQL ifnull()函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)MySQL ifnull()函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)表字段內(nèi)容的批量修改、清空、復(fù)制等更新命令
MySQL數(shù)據(jù)表字段內(nèi)容的批量修改、清空、復(fù)制等更新命令,需要的朋友可以參考下。2011-08-08通過兩種方式增加從庫(kù)——不停止mysql服務(wù)
現(xiàn)在生產(chǎn)環(huán)境MySQL數(shù)據(jù)庫(kù)是一主一從,由于業(yè)務(wù)量訪問不斷增大,故再增加一臺(tái)從庫(kù)。前提是不能影響線上業(yè)務(wù)使用,也就是說不能重啟MySQL服務(wù),為了避免出現(xiàn)其他情況,選擇在網(wǎng)站訪問量低峰期時(shí)間段操作2015-11-11MySQL數(shù)據(jù)庫(kù)自連接實(shí)例講解
針對(duì)相同的表進(jìn)行的連接被稱為"自連接"(self?join),下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)自連接實(shí)例講解的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06MySQL中LAG()函數(shù)和LEAD()函數(shù)的使用
這篇文章主要介紹了MySQL中LAG()函數(shù)和LEAD()函數(shù)的使用,包括窗口函數(shù)的基本用法,LAG()和LEAD()函數(shù)介紹,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08MySQL 中 blob 和 text 數(shù)據(jù)類型詳解
本文主要介紹了MySQL中blob和text數(shù)據(jù)類型詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02逐步分析MySQL從庫(kù)com_insert無(wú)變化的原因
大家都知道com_insert等com_xxx參數(shù)可以用來(lái)監(jiān)控?cái)?shù)據(jù)庫(kù)實(shí)例的訪問量,也就是我們常說的QPS。并且基于MySQL的復(fù)制原理,所有主庫(kù)執(zhí)行的操作都會(huì)在從庫(kù)重放一遍保證數(shù)據(jù)一致,那么主庫(kù)的com_insert和從庫(kù)的com_insert理論上應(yīng)該是相等的。2014-05-05