MySQL ifnull()函數(shù)的具體使用
MySQL IFNULL函數(shù)簡介
MySQL IFNULL
函數(shù)是MySQL控制流函數(shù)之一,它接受兩個參數(shù),如果不是NULL,則返回第一個參數(shù)。 否則,IFNULL
函數(shù)返回第二個參數(shù)。
兩個參數(shù)可以是文字值或表達式。
以下說明了IFNULL函數(shù)的語法:
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使用的注意事項
首先建一張簡單的表,用于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異常。
到此這篇關(guān)于MySQL ifnull()函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)MySQL ifnull()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)表字段內(nèi)容的批量修改、清空、復(fù)制等更新命令
MySQL數(shù)據(jù)表字段內(nèi)容的批量修改、清空、復(fù)制等更新命令,需要的朋友可以參考下。2011-08-08MySQL中LAG()函數(shù)和LEAD()函數(shù)的使用
這篇文章主要介紹了MySQL中LAG()函數(shù)和LEAD()函數(shù)的使用,包括窗口函數(shù)的基本用法,LAG()和LEAD()函數(shù)介紹,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08MySQL 中 blob 和 text 數(shù)據(jù)類型詳解
本文主要介紹了MySQL中blob和text數(shù)據(jù)類型詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02