在MySQL中,有時候我們需要把多個字段的值合并成一個字段,比如將地址的省、市、區(qū)、街道等字段合并成完整的地址字段,或者將多張表的某些字段合并成一張新的表。這時候,我們可以使用MySQL提供的 CONCAT 函數(shù)來實現(xiàn)字段值的合并。
SELECT CONCAT(province, city, district, street) AS full_address FROM address;
上面的SQL語句使用 CONCAT 函數(shù)將地址的省、市、區(qū)、街道四個字段的值合并成一個完整的地址字段,并使用 AS 關(guān)鍵字為這個新的字段起了一個別名 full_address。執(zhí)行這個SQL語句后,我們就可以得到如下的結(jié)果:
+------------------------+ | full_address | +------------------------+ | 廣東省深圳市南山區(qū)科技園北區(qū)科苑路 | +------------------------+
除了 CONCAT 函數(shù)以外,MySQL還提供了另外一個函數(shù) CONCAT_WS 來實現(xiàn)字段值合并。不過,與 CONCAT 函數(shù)不同的是,CONCAT_WS 函數(shù)可以指定一個分隔符(separator)來將合并的值連接起來。
SELECT CONCAT_WS(',', province, city, district, street) AS full_address FROM address;
上面的SQL語句在 CONCAT_WS 函數(shù)的第一個參數(shù)中指定了一個逗號作為分隔符(separator),這樣,生成的完整地址就是一個使用逗號分隔的字符串。
+-------------------------------+ | full_address | +-------------------------------+ | 廣東省,深圳市,南山區(qū),科技園北區(qū),科苑路 | +-------------------------------+
使用 CONCAT 函數(shù)和 CONCAT_WS 函數(shù)可以有效地實現(xiàn)MySQL中字段值的合并。