NULL 值扭曲 MySQL 中的 CONCAT 函數
在包含 NULL 值的表上執行 CONCAT 查詢可能會導致意外結果。在提供的範例中,某些欄位中的 NULL 值會導致整個 CONCAT 結果變成 NULL。
為了解決這個問題,可以使用 COALESCE 函數來優雅地處理 NULL 值。 COALESCE 接受兩個參數:正在計算的字段,以及字段為 NULL 時要替換的值。透過將每個可能為 NULL 的欄位包裝在 COALESCE 中,我們可以用空字串 ('') 取代 NULL 值。
應用了COALESCE 的修改後的查詢:
SELECT CONCAT(COALESCE(`affiliate_name`,''),'-',COALESCE(`model`,''),'-',COALESCE(`ip`,''),'-',COALESCE(`os_type`,''),'-',COALESCE(`os_version`,'')) AS device_name FROM devices
此查詢現在將傳回所需的結果,忽略NULL 值並將非NULL 值連接成單一字串:
cs1-Dell-10.125.103.25-Linux-Fedora cs2-Dell-10.125.103.26-Linux-Fedora cs3-Dell-10.125.103.27- cs4-Dell-10.125.103.28-
以上是如何防止 NULL 值破壞 MySQL CONCAT 結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!