CONCAT函数用于拼接字符串,若任一参数为NULL则结果为NULL,可使用IFNULL或CONCAT_WS避免;CONCAT(str1, str2)直接拼接,CONCAT_WS('- ', str1, str2)用指定分隔符并自动跳过NULL值。

在 MySQL 中,CONCAT() 函数用于将两个或多个字符串连接成一个字符串。如果任何一个参数为 NULL,整个结果就会变成 NULL。为了避免这种情况,可以使用 CONCAT_WS() 或结合 IFNULL() 处理空值。
基本语法:CONCAT(str1, str2, ...)
将多个字符串拼接在一起,返回拼接后的结果。
- SELECT CONCAT('Hello', ' ', 'World'); — 返回 "Hello World"
- SELECT CONCAT(first_name, ' ', last_name) FROM users; — 拼接姓名
处理 NULL 值:使用 IFNULL
当字段可能为 NULL 时,直接使用 CONCAT 会导致结果为 NULL。可以用 IFNULL 将 NULL 转为空字符串或其他默认值。
- SELECT CONCAT(IFNULL(first_name, ''), ' ', IFNULL(last_name, '')) FROM users;
- 这样即使某个字段为空,也能正常拼接。
使用分隔符:CONCAT_WS()
CONCAT_WS() 表示“带分隔符的拼接”,第一个参数是分隔符,后面是需要拼接的字段。
- SELECT CONCAT_WS('-', '2024', '04', '01'); — 返回 "2024-04-01"
- SELECT CONCAT_WS(' ', first_name, middle_name, last_name) FROM users; — 自动跳过 NULL 值
基本上就这些。根据实际场景选择 CONCAT 还是 CONCAT_WS,注意处理空值问题即可。不复杂但容易忽略细节。










