MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問題解決
項(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;
指定使用逗號進(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í)候,不會因?yàn)镹ULL值而返回NULL
到此這篇關(guān)于MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問題解決的文章就介紹到這了,更多相關(guān)MySQL CONCAT()拼接出現(xiàn)NULL內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL性能指標(biāo)解讀與監(jiān)控的具體方法
在數(shù)據(jù)庫的世界里,MySQL憑借其開源、高效、穩(wěn)定的特性,成為眾多企業(yè)和開發(fā)者的首選,為了確保MySQL數(shù)據(jù)庫能夠穩(wěn)定、高效地運(yùn)行,深入理解性能指標(biāo)并掌握有效的監(jiān)控方法至關(guān)重要,本文將圍繞QPS、TPS、緩存命中率等關(guān)鍵性能指標(biāo)展開解讀,需要的朋友可以參考下2025-06-06MySQL select、insert、update批量操作語句代碼實(shí)例
這篇文章主要介紹了MySQL select、insert、update批量操作語句代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03如何修改Linux服務(wù)器中的MySQL數(shù)據(jù)庫密碼
這篇文章主要介紹了如何修改Linux服務(wù)器中的MySQL數(shù)據(jù)庫密碼問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06CentOS7下二進(jìn)制安裝mysql 5.7.23
這篇文章主要為大家詳細(xì)介紹了CentOS7下二進(jìn)制安裝mysql 5.7.23,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06