MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問(wèn)題解決
項(xiàng)目中查詢用到了concat()拼接函數(shù),在此查詢中出現(xiàn)了拼接的字段為null的情況,拼接結(jié)果為null在應(yīng)用層報(bào)了空指針異常。
SELECT CONCAT('1,',NULL,'2') result;
SELECT CONCAT('1,','','2') result;
通過(guò)實(shí)踐證明CONCAT()函數(shù)拼接時(shí)如果拼接的參數(shù)中有NULL時(shí),結(jié)果為NULL。
使用以下方式來(lái)解決
方法一:使用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
到此這篇關(guān)于MySQL中CONCAT()函數(shù)拼接出現(xiàn)NULL的問(wèn)題解決的文章就介紹到這了,更多相關(guān)MySQL CONCAT()拼接出現(xiàn)NULL內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解MySql自連接,外連接,內(nèi)連接?,左連接,右連接
這篇文章主要介紹了詳解MySql自連接,外連接,內(nèi)連接?,左連接,右連接,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08Mysql?刪除重復(fù)數(shù)據(jù)保留一條有效數(shù)據(jù)(最新推薦)
這篇文章主要介紹了Mysql?刪除重復(fù)數(shù)據(jù)保留一條有效數(shù)據(jù),實(shí)現(xiàn)原理也很簡(jiǎn)單,mysql刪除重復(fù)數(shù)據(jù),多個(gè)字段分組操作,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理
這篇文章主要介紹了MySQL 4.1/5.0/5.1/5.5/5.6各版本的主要區(qū)別整理,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-08-08mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決(can't?not?create?table)
這篇文章主要介紹了mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決方案(can't?not?create?table),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Mysql數(shù)據(jù)庫(kù)group?by原理詳解
這篇文章主要為大家介紹了Mysql數(shù)據(jù)庫(kù)group?by的原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題的對(duì)應(yīng)方式
今天小編就為大家分享一篇關(guān)于Mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題的對(duì)應(yīng)方式,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12