首頁 >資料庫 >mysql教程 >MySQL中CONCAT()函式拼接出現NULL問題如何解決

MySQL中CONCAT()函式拼接出現NULL問題如何解決

WBOY
WBOY轉載
2023-06-01 23:29:023782瀏覽

專案中查詢用到了concat()拼接函數,在此查詢中出現了拼接的欄位為null的情況,拼接結果為null在應用層報告了空指標異常。

SELECT CONCAT('1,',NULL,'2') result;

MySQL中CONCAT()函式拼接出現NULL問題如何解決

SELECT CONCAT('1,','','2') result;

MySQL中CONCAT()函式拼接出現NULL問題如何解決

透過實作證明CONCAT()函數拼接時如果拼接的參數有NULL時,則結果為NULL。

使用以下方式來解決

方法一:使用IFNULL函數如果是NULL將其置為''空字串。

SELECT CONCAT('1,',IFNULL(NULL,''),'2') result;

MySQL中CONCAT()函式拼接出現NULL問題如何解決

方法二:使用CONCAT_WS函數。指定有分隔符號的字串連接 

SELECT CONCAT_WS(',','1',NULL,'2') result;

指定使用逗號進行分隔

MySQL中CONCAT()函式拼接出現NULL問題如何解決

#CONCAT_WS(分隔符,參數1,參數2,. ..參數n)與CONCAT(參數1,參數2,...參數n)

兩個函數的差異:

CONCAT_WS() :表示concat with separator,即有分隔符號的字串連接 

CONCAT():表示將字串進行連接

兩個最重要的區別就是,CONCAT()函數,拼接參數中存在NULL直接回傳NULL

而CONCAT_WS()函數在執行的時候,不會因為NULL值而回傳NULL

以上是MySQL中CONCAT()函式拼接出現NULL問題如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除