您好,登錄后才能下訂單哦!
本文小編為大家詳細(xì)介紹“MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL問題如何解決”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL問題如何解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。
項(xiàng)目中查詢用到了concat()拼接函數(shù),在此查詢中出現(xiàn)了拼接的字段為null的情況,拼接結(jié)果為null在應(yīng)用層報(bào)了空指針異常。
SELECT CONCAT('1,',NULL,'2') result;
SELECT CONCAT('1,','','2') result;
通過實(shí)踐證明CONCAT()函數(shù)拼接時(shí)如果拼接的參數(shù)中有NULL時(shí),結(jié)果為NULL。
方法一:使用IFNULL函數(shù)如果是NULL將其置為''空字符串。
SELECT CONCAT('1,',IFNULL(NULL,''),'2') result;
方法二:使用CONCAT_WS函數(shù)。指定有分隔符的字符串連接
SELECT CONCAT_WS(',','1',NULL,'2') result;
指定使用逗號(hào)進(jìn)行分隔
CONCAT_WS(分隔符,參數(shù)1,參數(shù)2,...參數(shù)n)與CONCAT(參數(shù)1,參數(shù)2,...參數(shù)n)
兩個(gè)函數(shù)的區(qū)別:
CONCAT_WS():表示concat with separator,即有分隔符的字符串連接
CONCAT():表示將字符串進(jìn)行連接
兩個(gè)最重要的區(qū)別就是,CONCAT()函數(shù),拼接參數(shù)中存在NULL直接返回NULL
而CONCAT_WS()函數(shù)在執(zhí)行的時(shí)候,不會(huì)因?yàn)镹ULL值而返回NULL
讀到這里,這篇“MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL問題如何解決”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。