我正在編寫一個PHP和MySQL應用程序,其中我必須將多個列值連接成一個列。我會使用concat()函數,但它不會處理空值和concat_ws(),它不會返回我想要的輸出中的結果。 我需要的可以在Oracle數據庫中這樣來實現:MySQL查詢中的Concat值(處理空值)
Select 'The Surname Is'||last_name from employees;
我的問題是如何能夠做到用MySQL..without上述命名的函數這個同樣的結果?
我正在編寫一個PHP和MySQL應用程序,其中我必須將多個列值連接成一個列。我會使用concat()函數,但它不會處理空值和concat_ws(),它不會返回我想要的輸出中的結果。 我需要的可以在Oracle數據庫中這樣來實現:MySQL查詢中的Concat值(處理空值)
Select 'The Surname Is'||last_name from employees;
我的問題是如何能夠做到用MySQL..without上述命名的函數這個同樣的結果?
使用coalesce到Concat的一個空字符串
select concat(coalesce(null, ''));
您還可以使用CONCAT_WS函數,它負責NULL值
SELECT
CONCAT_WS(' ','The Surname Is',lastname)
FROM `employees`
@Minesh :CONCAT_WS不會「照顧」NULL值。爲了說明這一點...
CONCAT_WS("~",house.name,house.address,house.type)
在上面的例子中,如果house.address是NULL返回的結果將不包含一個整潔的雙蒂爾達(~~),符合市場預期。這將是一個蒂爾達分開的列表,只有1蒂爾達。例如,「遊樂園的豪宅〜」
一個小技巧:使用空字符串像CONCAT_WS分離器(有些時候,你wan't插入空格)
CONCAT_WS('','The Surname Is:',lastname)
FROM `employees`
它並與它一起的分離器中取出,在哪裏那個問題呢?這是一個整潔的解決方案,除非你想做其他的事情 – CME64 2014-12-31 13:28:26