MySQL中如何通过CONCAT函数将两个字段合并为一个字符串显示?
- 内容介绍
- 文章标签
- 相关推荐
本文共计777个文字,预计阅读时间需要4分钟。
如果只提供一个参数为`NULL`,使用`CONCAT()`函数将直接返回`NULL`,而不是空字符串。这是最常见的问题之一。记住,`CONCAT()`函数在遇到`NULL`参数时,结果将是`NULL`,而不是空字符串。
常见错误现象:SELECT CONCAT(first_name, ' ', last_name) FROM users; 中某条记录first_name为空,整行显示NULL,而不是' John'或'Doe'。
- 用
IFNULL()或COALESCE()提前兜底:例如CONCAT(IFNULL(first_name, ''), ' ', IFNULL(last_name, '')) -
COALESCE()更通用,支持多个备选值,比如CONCAT(COALESCE(first_name, '', '未知'), ' ', COALESCE(last_name, '')) - 注意空格处理:如果两个字段都为空,结果会是
' '(一个空格),必要时加TRIM()
想用空格/逗号等分隔符拼接,但手动写太啰嗦
别重复写CONCAT(a, ' ', b, ' ', c)——MySQL 8.0+ 提供了更简洁的CONCAT_WS()(WS = With Separator)。
本文共计777个文字,预计阅读时间需要4分钟。
如果只提供一个参数为`NULL`,使用`CONCAT()`函数将直接返回`NULL`,而不是空字符串。这是最常见的问题之一。记住,`CONCAT()`函数在遇到`NULL`参数时,结果将是`NULL`,而不是空字符串。
常见错误现象:SELECT CONCAT(first_name, ' ', last_name) FROM users; 中某条记录first_name为空,整行显示NULL,而不是' John'或'Doe'。
- 用
IFNULL()或COALESCE()提前兜底:例如CONCAT(IFNULL(first_name, ''), ' ', IFNULL(last_name, '')) -
COALESCE()更通用,支持多个备选值,比如CONCAT(COALESCE(first_name, '', '未知'), ' ', COALESCE(last_name, '')) - 注意空格处理:如果两个字段都为空,结果会是
' '(一个空格),必要时加TRIM()
想用空格/逗号等分隔符拼接,但手动写太啰嗦
别重复写CONCAT(a, ' ', b, ' ', c)——MySQL 8.0+ 提供了更简洁的CONCAT_WS()(WS = With Separator)。

